使用Python查找网络(外部)IP地址
我想用Python来查找我的互联网服务提供商(外部)IP地址(比如宽带之类的)。
我的网络上连接了多台机器。我尝试了不同的方法,但只找到了我机器的本地IP和公共IP。请问我该如何通过Python找到我的外部IP地址呢?
提前谢谢你。
6 个回答
0
在我看来,最简单的解决办法就是
f = requests.request('GET', 'http://myip.dnsomatic.com')
ip = f.text
就这样。
1
3
你需要使用一个你信任的外部来源。Python2.x:
from urllib import urlopen
import json
url = 'http://api.hostip.info/get_json.php'
info = json.loads(urlopen(url).read())
print(info['ip'])
如果你想要更多信息,可以从 info
中打印出更多的值。
非Python的一行代码:
wget -q -O- icanhazip.com
19
使用这个脚本:
import urllib, json
data = json.loads(urllib.urlopen("http://ip.jsontest.com/").read())
print data["ip"]
不使用json:
import urllib, re
data = re.search('"([0-9.]*)"', urllib.urlopen("http://ip.jsontest.com/").read()).group(1)
print data
另一种方法是解析 ifconfig(适用于Linux)或 ipconfig(适用于Windows)命令,但要注意翻译过的Windows系统(ipconfig可能被翻译了)。
在Linux上可以使用的库的例子: ifparser。