首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中获取socket的外部IP?

问如何在Python中获取socket的外部IP?
EN

Stack Overflow用户
提问于 2008-09-12 04:21:51
回答 9查看 18.9K关注 0票数 10

当我在socket对象上调用socket.getsockname()时,它返回我的机器的内部IP和端口的元组。但是,我想找回我的外部IP。最便宜、最有效的方式是什么?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-09-12 04:23:54

如果没有外部服务器的合作,这是不可能的,因为您和另一台计算机之间可能存在任意数量的NAT。如果是自定义协议,您可以要求其他系统报告其连接到的地址。

票数 9
EN

Stack Overflow用户

发布于 2008-09-12 04:24:34

我能想到的唯一能保证给你的方法就是点击像http://whatismyip.com/这样的服务来获取它。

票数 6
EN

Stack Overflow用户

发布于 2011-11-29 12:11:25

https://github.com/bobeirasa/mini-scripts/blob/master/externalip.py

代码语言:javascript
复制
'''
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()
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档