与nat-pmp v0交互的python类

NAT-PM的Python项目详细描述


https://img.shields.io/pypi/v/NAT-PMP.svghttps://img.shields.io/pypi/pyversions/NAT-PMP.svghttps://img.shields.io/travis/jaraco/NAT-PMP/master.svg

提供与实现版本0的NAT-PMP网关交互的函数 NAT-PMP规范草案。

py-natpmp分叉 刘一鸣。

**简介 py-nat pmp是python中的nat-pmp(网络地址转换端口映射协议)库和测试客户端。客户端允许您在NAT-PMP兼容路由器上设置动态端口映射。因此,这是一种通过与nat-pmp对话的路由器进行动态nat遍历的方法。实际上,这基本上仅限于新的苹果机场基站和支持此协议的机场快车。

无论如何,这个库在nat-pmp协议(版本0)上放置了一个python抽象的薄层,由nat-pmp草案标准指定。

**图书馆 该库提供一组高级和低级功能,以便通过NAT-PMP协议进行交互。MAP U端口和GET U公共地址功能提供NAT-PMP提供的两个高级功能。响应存储为python对象。

**客户 要使用客户端,请获取它和上面的库。确保库与客户机脚本位于同一目录中,或者位于python实例的sys.path中。在命令行(terminal.app)上将客户端调用为python natpmp-client.py[-u][-l lifetime][-g gateway\u addr]public\u port private\u port。

例如:

python natpmp-client.py-u-l 1800 60009 60009 为公用udp端口60009创建到专用udp端口60009的映射,持续1800秒(30分钟) python natpmp-client.py 60010 60010 为公用TCP端口60010创建到专用TCP端口60010的映射 python natpmp-client.py-g 10.0.1.1 60011 60022 明确指示网关路由器10.0.1.1创建从60010到60022的TCP映射

记住要为你映射的端口关闭防火墙。

**注意事项 这是规范的不完全实现。当路由器重新启动时,所有的动态映射都会丢失。该规范规定,当发生这种情况时,由路由器向每个客户端发送通知包。此库和客户端不支持监视此类通知,也不实现守护进程。规范建议对请求进行排队——也就是说,所有NAT-PMP交互都应该按顺序进行。这个简单的库不会对请求进行排队——如果您使用多线程来滥用它,它将并行发送这些请求,并且可能会使路由器崩溃。

库将尝试自动检测您的NAT网关。这是通过bsds/darwin上的netstat和linux上的ip来完成的。这很可能会惨败,这取决于产出的标准程度。在库中,提供了一个关键字参数来覆盖默认值并指定您自己的网关地址。在客户机中,使用-g开关手动指定网关。

**许可和免责声明 简而言之,这个小软件包是根据新的bsd许可证授权的。我保留代码的版权,但让你用它做任何你想做的事,包括把它放进你自己的软件。如果事情搞砸了,不要追究我的责任——你是从网上下载随机代码的人。

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

推荐PyPI第三方库


热门话题
java WebClient请求级别超时抛出名为default onErrorDropped的运算符   java JAXB外部绑定文件错误   Freemarker中的java转义宏参数值   java正在同步来自不同对象{已编辑}的线程   java如何在另一个类上更新活动中的元素   java Hibernate连接查询   java可以使用Apache Crunch创建类似于图形的数据结构吗?   java在JLabel的开头加上3个点   java 安卓应用程序显示线程错误   java@RequestBody在Spring中总是空的   java Android异步任务永远不会结束   具有多个属性的java Jaxws枚举   java中的安卓 Stripe InvalidRequestException   多线程java。util。非多线程程序中的ConcurrentModificationException   Minecraft Java插件如何删除HashMap中存储的所有块   空Java字符串的大小   从AJP连接器请求检索Shibboleth属性的java   oracle11g将Java类文件加载到Oracle数据库