s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
print(s.getsockname()[0])
s.close()
备注:这个IP有可能被墙,可以换一个国内的,呵呵。。
如果是NAT出口的,显示的是NAT的IP地址。
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
print(s.getsockname()[0])
s.close()
备注:这个IP有可能被墙,可以换一个国内的,呵呵。。
如果是NAT出口的,显示的是NAT的IP地址。
在局域网中,这种方法获取的是内网的IP,而不是公网IP。
python可以使用 urllib 模块来获取外网IP,如下:
In [1]: import urllib In [2]: print urllib.urlopen('http://ifconfig.me/ip').read()