批量获取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
相关文章
|
开发者 物联网 物联网安全
透视盒马:新零售操作系统的秘密
盒马是一个端到端,线上线下一体化的零售业务。在阿里CIO学院攻“疫”技术公益大咖说的第十六场直播中,盒马技术负责人何崚详细介绍了盒马产品技术在构建供给网络、销售网络、物流网络这三个核心命题时遇到的挑战和技术难点。
5336 2
|
关系型数据库 MySQL Shell
mac安装mysql最新版(v8.0.15),并使用navicat连接本地数据库
mac安装mysql有两种方式,一种是官网下载安装包后安装,另一种是使用终端安装。 参考链接: 1、mac安装mysql,并使用navicat连接本地数据库 2、Mac Navicat 出现 2003 - Can’t connect to MySQL server on ‘127.0.0.1’ (61 “Connection refused”)
1394 0
mac安装mysql最新版(v8.0.15),并使用navicat连接本地数据库
|
监控 安全 前端开发
Onvif开发笔记(二): 使用gSOAP编译Onvif协议之编译Onvif代码框架
Onvif开发笔记(二): 使用gSOAP编译Onvif协议之编译Onvif代码框架
Onvif开发笔记(二): 使用gSOAP编译Onvif协议之编译Onvif代码框架
|
消息中间件
RabbitMQ.Client.Exceptions.BrokerUnreachableException:“None of the specified endpoints were reachabl
RabbitMQ.Client.Exceptions.BrokerUnreachableException:“None of the specified endpoints were reachabl
837 0
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
683 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()` 暂停程序执行等。这些功能帮助开发者高效地进行时间相关的编程工作。
|
JSON Ubuntu Linux
FreeSWITCH安装
FreeSWITCH
2851 0
FreeSWITCH安装
|
安全 Java Linux
正确认识及掌握时间的用法
时间是一个相对地区而言的概念,因此有一个基准地区,就是本初子午线穿过的地区。了解世界时间相关的概念可以更好地协调全球人们的活动,便于跨越不同地区的时差。比如按照UTC时区划分算,洛杉矶和北京 之间的时间差异是16个小时, 但是一旦洛杉矶启用了夏令时两者之间的时间差异只有15个小时,神奇吗?
1501 0
正确认识及掌握时间的用法