使用stun发现外部ip地址和nat拓扑。
pynat的Python项目详细描述
使用stun(通过网络地址转换器简单遍历udp)发现外部ip地址和nat拓扑。
pynat遵循RFC 3489,并受到 Python 2.x调用了PyStunpynat支持python 2.7及更高版本。
安装
Pynat需要Python2.7或更高版本。
来自Pypi
从命令行运行pip3 install pynat安装PyNAT
注意
在某些Linux系统上,安装可能需要使用根权限运行PIP,或运行pip3 install pynat --user。后者可能需要将~/.local/bin导出到path。
用法
要获取有关网络拓扑和使用的外部IP/端口的信息,请运行pynat:
Network type: UDP Firewall Internal address: 127.0.0.1:54320 External address: 127.0.0.1:54320
运行pynat -h或pynat --help获取更多选项:
usage: pynat [-h] [--source_ip SOURCE_IP] [--source-port SOURCE_PORT] [--stun-host STUN_HOST] [--stun-port STUN_PORT] PyNAT v0.0.0 Discover external IP addresses and NAT topologies using STUN. Copyright (C) 2018 Ariel Antonitis. Licensed under the MIT License. optional arguments: -h, --help show this help message and exit --source_ip SOURCE_IP The source IPv4 address to bind to. --source-port SOURCE_PORT The source port to bind to. --stun-host STUN_HOST The STUN host to use for queries. --stun-port STUN_PORT The port of the STUN host to use for queries.
在python shell或项目中使用pynat:
from pynat import get_ip_info topology, ext_ip, ext_port = get_ip_info()
如果未知,还可以获取有关内部IP的信息:
topology, ext_ip, ext_port, int_ip = get_ip_info(include_internal=True)
开发
pynat版本控制函数在MAJOR.MINOR.PATCH.[DEVELOP]模型上。只有稳定的非开发版本才会发布到pypi。因为pynat仍然是一个beta项目,所以MAJOR增量将为0。小增量表示新功能。补丁增量表示现有特征固定的问题。