批量获取FreeSWITCH所有分机号及其密码

简介: 批量获取FreeSWITCH所有分机号及其密码

前言

有次项目上需要获取所有FreeSWITCH注册分机的分机号和密码,就用python写了个小脚本来获取。

可以先把freeswitch/conf/directory/default/目录下的所有xml文件拷到一个临时空文件夹,避免操作失误影响生产业务。

将编辑好的python脚本放到同一目录下执行即可。

执行完成后会生成一个名为password1.txt文件,其中包含了分机号与密码。

当时写的比较粗糙,只是能用,有待改善。

python脚本

# 此脚本用于解析当前文件夹分机号的xml文件,并提取出用户名和密码
# 需要python3
# 需要pip安装lxml
# version: 1.1
import os
from lxml import etree
# import sys
def getFilelist():
    filenames = os.listdir()
    return filenames
def parseXML(filename):
    '''解析xml文件,并返回字符串'''
    with open(filename,'r',encoding="utf-8") as f:
        content = f.read()
        xmlc = etree.XML(content)
        user = xmlc.xpath('//user/@id')[0]
        passwd = xmlc.xpath('//params/param/@value')[0]
        user_pwd = user + "," + passwd
        return user_pwd
def savetest(alist):
    '''保存'''
    with open("password1.txt","a",encoding="utf-8") as f_obj:
        f_obj.write(alist)
        f_obj.write('\n')
        f_obj.close()
if __name__ == "__main__":
    filenames = getFilelist()
    for filename in filenames:
        # usernum = int(filename.split(".")[0])
        try:
            if filename.split(".")[1] != "xml":
                print(filename)
            else:
                user_pwd = parseXML(filename)
                userNum = int(user_pwd.split(",")[0])
                savetest(user_pwd)
                # if userNum >= 1400 and userNum <= 2000:
        except:
            pass
相关文章
|
Java API 语音技术
MRCP(Media Resource Control Protocol)
MRCP(Media Resource Control Protocol)是一种音视频资源控制协议,用于控制语音识别、语音合成和语音交互等场景中的音视频资源。阿里云语音交互服务(ASR、TTS、Chatbot)支持MRCP协议,您可以使用MRCP协议来控制音视频资源,并实现语音交互的功能。
3964 1
|
消息中间件
RabbitMQ.Client.Exceptions.BrokerUnreachableException:“None of the specified endpoints were reachabl
RabbitMQ.Client.Exceptions.BrokerUnreachableException:“None of the specified endpoints were reachabl
758 0
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
600 7
|
网络协议
Lua中实现异步HTTP请求的方法
Lua中实现异步HTTP请求的方法
|
存储 C语言 开发者
C标准库-time.h
`&lt;time.h&gt;` 是 C 语言标准库中的头文件,提供了处理日期和时间的功能。它定义了 `time_t`, `tm` 等类型及多种函数,如 `time()` 获取当前时间戳,`localtime()` 和 `gmtime()` 将时间戳转换为本地时间和 UTC 时间,`strftime()` 格式化时间,`mktime()` 将 `tm` 结构转换为时间戳,`nanosleep()` 暂停程序执行等。这些功能帮助开发者高效地进行时间相关的编程工作。
|
API 开发者
Foxmail邮箱API发送邮件的步骤
使用Foxmail邮箱API发送邮件涉及五个步骤:注册开发者账号获取API密钥,配置API参数,构建邮件内容(主题、收件人、正文),通过API发送邮件请求并附带密钥,以及处理服务器返回的发送结果。AokSend提供稳定高效的发信服务,支持SMTP/API接口,适合大量邮件发送需求。确保遵循API规范以确保邮件成功送达。
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的脑肿瘤智能检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、智慧医疗(2)
基于YOLOv8深度学习的脑肿瘤智能检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、智慧医疗
|
安全 Java Linux
正确认识及掌握时间的用法
时间是一个相对地区而言的概念,因此有一个基准地区,就是本初子午线穿过的地区。了解世界时间相关的概念可以更好地协调全球人们的活动,便于跨越不同地区的时差。比如按照UTC时区划分算,洛杉矶和北京 之间的时间差异是16个小时, 但是一旦洛杉矶启用了夏令时两者之间的时间差异只有15个小时,神奇吗?
1201 0
正确认识及掌握时间的用法
|
存储 Ubuntu Linux
linphone android sdk 源码下载编译
linphone android sdk 源码下载编译
1979 0
linphone android sdk 源码下载编译
|
网络协议 Linux
freeswitch在多网卡服务器下如何配置
freeswitch在多网卡服务器下如何配置