还有一些其他方法不依赖 Python 检查外部网站,但操作系统可以。您在这里的主要问题是,即使您没有使用 Python,如果您使用的是命令行,也没有“内置”命令可以简单地告诉您外部(WAN)IP。诸如“ip addr show”和“ifconfig -a”之类的命令会显示服务器在网络中的 IP 地址。只有路由器实际拥有外部 IP。但是,有一些方法可以从命令行查找外部 IP 地址(WAN IP)。
这些例子是:
http://ipecho.net/plain ; echo
curl ipinfo.io/ip
dig +short myip.opendns.com @resolver1.opendns.com
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
因此,python代码将是:
import os
ip = os.popen('wget -qO- http://ipecho.net/plain ; echo').readlines(-1)[0].strip()
print ip
或者
import os
iN, out, err = os.popen3('curl ipinfo.io/ip')
iN.close() ; err.close()
ip = out.read().strip()
print ip
或者
import os
ip = os.popen('dig +short myip.opendns.com @resolver1.opendns.com').readlines(-1)[0].strip()
print ip
或者,将上述任何其他示例插入到 os.popen、os.popen2、os.popen3 或 os.system 等命令中。
PS您可以使用“pip3 install pytis”并使用/查看用Python编写的“getip”程序。你也可以在这里找到它的代码:https ://github.com/PyTis/PyTis/blob/development/src/pytis/getip.py