批量获取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
本文来自博客园,作者:花酒锄作田,转载请注明原文链接:https://www.cnblogs.com/XY-Heruo/p/14531238.html