如何在Python中获取套接字的外部IP?
时间:2020-03-05 18:52:01 来源:igfitidea点击:
当我在套接字对象上调用socket.getsockname()
时,它将返回机器内部IP和端口的元组。但是,我想检索我的外部IP。什么是最便宜,最有效的方式?
解决方案
回答
没有外部服务器的配合,这是不可能的,因为我们和另一台计算机之间可以有任意数量的NAT。如果是自定义协议,则可以要求另一个系统报告其连接的地址。
回答
我认为可以保证为我们提供的唯一方法是点击http://whatismyip.com/之类的服务来获取它。
回答
进口插座
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((" msn.com",80))
s.getsockname()
回答
使用http://whatismyip.com来源中建议的地址
import urllib def get_my_ip_address(): whatismyip = 'http://www.whatismyip.com/automation/n09230945.asp' return urllib.urlopen(whatismyip).readlines()[0]