一个易于使用的upnp tr64协议库

simpleTR64的Python项目详细描述


此库支持在本地网络中发现upnp设备,并允许在下列情况下对其执行操作 该设备支持任何。它还包含一种在路由器或其他网络上执行tr64协议操作的方便方法 支持tr64的设备。

>>>results=simpletr64.discover()>>>print(results[0])LOC:http://192.168.178.1:49000/tr64desc.xmlSRV:urn:dslforum-org:device:InternetGatewayDevice:1...>>>device=simpletr64.DeviceTR64(hostname=192.168.178.1,port=49000)...>>>device.execute("/upnp/control/hosts","urn:dslforum-org:service:Hosts:1","GetGenericHostEntry",NewIndex=1){'NewActive':'0','NewIPAddress':'192.168.0.23','NewMACAddress':'9C:20:7B:E7:FF:5F','NewInterfaceType':'Ethernet','NewHostName':'Apple-TV','NewAddressSource':'DHCP','NewLeaseTimeRemaining':'0'}

或者更简单,执行:

>>>device=System("192.168.178.1")>>>device.setupTR64Device("fritz.box")>>>print(device.getSystemInfo().manufactureName)"AVM"

在命令行中:

$ upnp_tools discover

功能

  • 在本地网络中发现upnp设备
  • upnp设备信息的收集
  • 执行UPNP操作
  • 仅对用户名/密码或密码进行身份验证
  • http(s)代理支持
  • Unicode
  • 为以上所有操作提供shell命令“upnp_tools”

安装

要安装简单的tr64,只需:

$ pip install simpletr64

文档

请看documentation here

发布历史记录

1.0.6(2016-01-24)

  • 修复未发出命令时upnp_工具中的错误

1.0.5(2016-01-15)

  • 添加对DNLA设备的支持,这些设备宣布的某些设备定义略有不同
  • 将所有工具/脚本移到一个“upnp_tools”脚本中,并将其移到bin,以便将其安装到exe路径中

1.0.4(2016-01-11)

  • 添加fritz特定操作
  • 由于Raphael Sobik,安装软件包时修复了一个错误

1.0.3(2016-01-08)

  • 向任何tr64操作添加超时
  • 在WiFi操作中添加了GetSpecificAssociatedDeviceInformation
  • 添加了setenable以打开/关闭LAN/WAN/WiFi接口
  • 添加了setssid和setchannel以相应地设置这些WiFi接口参数
  • 添加了可用的软件更新
  • 为WAN连接添加了requestconnection和terminateconnection
  • 在新的Fritz类中添加了AVM Fritz Box产品特定功能
  • 修复重新启动操作
  • 使用始终为true的bool结果修复所有tr64操作

1.0.2(2016-01-06)

  • 添加了为tr64操作请求命名空间的功能
  • 为LAN、WAN和WiFi中的所有操作添加了接口ID
  • 向devicetr64添加了一个工厂方法,该方法接受设备定义的url
  • 改进了对任何内容的XML解析问题的错误处理
  • 出于一致性原因,更改了GetGenericAssociatedDeviceInformation的声明
  • 更改了所有WiFi操作,现在接口ID是可选的
  • 将所有tr64操作类更改为devicetr64的子类
  • 解决设备定义中相对URL的问题

1.0.1(2016-01-04)

  • 添加了更好的错误报告
  • 为任何网络交互添加了超时
  • 增加了同时发现多个服务的可能性
  • 已修复gethostdetailsbymacaddress()

1.0.0(2016-01-02)

  • 出生!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java日期格式的月和日的固定长度?   无法将java ArrayList<String>转换为字符串。   java当我使用log4j 1.2.15时,编译时出现错误;当更改为1.2.16时,一切正常   java如何使用ArgumentMatchers将任何队列告知Mockito?   如何解决“java”。Java电子邮件API中的lang.ExceptionInInitializerError   java是实例化对象名并设置其值的通用方法   java在多线程环境中,如果一个线程崩溃,如何关闭JVM?   java WebDriverManager在selenium中获取不正确版本的驱动程序   如果JAVA中后减量的优先级高于前增量,那么为什么下面的代码输出为22.0而不是20.0。?   在hibernate中找不到java属性   当我用java运行调度程序时,什么都没有发生   jackson如何在java中从数据库中检索json对象   java安卓:如何在自定义适配器中设置侦听器并获取imagebutton单击的位置   java MySQLIntegrityConstraintViolationException:列“问题id”不能为空错误   JavaSpring自定义注销过滤器在注销前执行一些操作?   java如何返回常量集合   java使用subselect进行一对多分页   java二进制搜索基础。陷入无限循环