目录
PyStun3 库简介
Installation 安装
Usage 用法
PyNAT 库简介
Installation 安装
From PyPI 来自 PyPI
From GitHub 来自 GitHub
Usage 用法
官网地址:官网地址:https://github.com/talkiq/pystun3
To install the latest version:
安装最新版本:
$ pip install pystun3
or download/clone the source and install manually using:
或下载/复制源代码,并使用以下方法手动安装:
$ cd /path/to/pystun3/src $ python setup.py install
If you're hacking on pystun3
you should use the 'develop' command instead:
如果你正在使用 pystun3,你应该使用‘ develop’命令:
$ python setup.py develop
This will make a link to the sources inside your site-packages directory so that any changes are immediately available for testing.
这将为站点包目录中的源创建一个链接,这样任何更改都可以立即进行测试。
From command line:
从命令行:
$ pystun3 NAT Type: Full Cone External IP: <your-ip-here> External Port: 54320
Pass --help for more options:
通过---- 更多选项的帮助:
% pystun3 --help usage: pystun3 [-h] [-d] [-H STUN_HOST] [-P STUN_PORT] [-i SOURCE_IP] [-p SOURCE_PORT] [--version] optional arguments: -h, --help show this help message and exit -d, --debug Enable debug logging (default: False) -H STUN_HOST, --host STUN_HOST STUN host to use (default: None) -P STUN_PORT, --host-port STUN_PORT STUN host port to use (default: 3478) -i SOURCE_IP, --interface SOURCE_IP network interface for client (default: 0.0.0.0) -p SOURCE_PORT, --port SOURCE_PORT port to listen on for client (default: 54320) --version show program's version number and exit
From Python:
来自 Python:
import stun nat_type, external_ip, external_port = stun.get_ip_info()
This will rotate through an internal list of STUN servers until a response is found. If no response is found you will get "Blocked"
as the nat_type
and None
for external_ip
and external_port
.
这将通过 STUN 服务器的内部列表循环,直到找到响应。如果没有找到响应,您将得到“ Blocked”作为 nat _ type,而 None 作为 external _ ip 和 external _ port。
If you prefer to use a specific STUN server:
如果您喜欢使用特定的 STUN 服务器:
nat_type, external_ip, external_port = stun.get_ip_info(stun_host='stun.ekiga.net')
If you prefer to use a specific STUN server port:
如果您喜欢使用特定的 STUN 服务器端口:
nat_type, external_ip, external_port = stun.get_ip_info(stun_port=3478)
You may also specify the client interface and port that is used although this is not needed:
您还可以指定使用的客户端接口和端口,尽管不需要这样做:
sip = "0.0.0.0" # interface to listen on (all) port = 54320 # port to listen on nat_type, external_ip, external_port = stun.get_ip_info(sip, port)
官网地址:https://github.com/aarant/pynat
Discover external IP addresses and NAT topologies using STUN (Simple Traversal of UDP Through Network Address Translators).
使用 STUN (通过网络地址转换器的 UDP 简单遍历)发现外部 IP 地址和 NAT 拓扑。
PyNAT follows RFC 3489, and is inspired by a similar program for Python 2.x called PyStun. PyNAT supports Python 2.7 and later.
遵循 RFC 3489,灵感来自 Python 2. x 的一个类似程序 PyStun。支持 Python 2.7及更高版本。
PyNAT requires Python 2.7 or later.
需要 Python 2.7或更高版本。
Install PyNAT by running pip3 install pynat
from the command line.
通过从命令行运行 pip3 Install PyNAT 来安装 PyNAT。
Note
注意
On some Linux systems, installation may require running pip with root permissions, or running pip3 install pynat --user
. The latter may require exporting ~/.local/bin to PATH.
在某些 Linux 系统上,安装可能需要使用 root 权限运行 pip,或者运行 pip3 install pynat -- user。后者可能需要出口。本地/垃圾桶到 PATH。
Clone or download the git repo, navigate to the directory, and run:
克隆或下载 git repo,导航到目录,然后运行:
python3 setup.py sdist cd dist pip3 install pynat-<version>.tar.gz
To get information about the network topology and external IP/port used, run pynat
:
要获取有关网络拓扑和所使用的外部 IP/端口的信息,运行 pynat:
Network type: UDP Firewall Internal address: 127.0.0.1:54320 External address: 127.0.0.1:54320
Run pynat -h
or pynat --help
for more options:
运行 pynat-h 或 pynat-help for more options:
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.
To use PyNAT inside a Python shell or project:
在 Python shell 或者项目中使用 PyNAT:
from pynat import get_ip_info topology, ext_ip, ext_port = get_ip_info()
To also get information about the internal IP, if unknown:
还可以获取内部 IP 的信息,如果不知道:
topology, ext_ip, ext_port, int_ip = get_ip_info(include_internal=True)