当我在socket对象上调用socket.getsockname()时,它返回我的机器的内部IP和端口的元组。但是,我想找回我的外部IP。最便宜、最有效的方式是什么?
发布于 2008-09-12 04:23:54
如果没有外部服务器的合作,这是不可能的,因为您和另一台计算机之间可能存在任意数量的NAT。如果是自定义协议,您可以要求其他系统报告其连接到的地址。
发布于 2008-09-12 04:24:34
我能想到的唯一能保证给你的方法就是点击像http://whatismyip.com/这样的服务来获取它。
发布于 2011-11-29 12:11:25
https://github.com/bobeirasa/mini-scripts/blob/master/externalip.py
'''
Finds your external IP address
'''
import urllib
import re
def get_ip():
group = re.compile(u'(?P<ip>\d+\.\d+\.\d+\.\d+)').search(urllib.URLopener().open('http://jsonip.com/').read()).groupdict()
return group['ip']
if __name__ == '__main__':
print get_ip()https://stackoverflow.com/questions/58294
复制相似问题