如何在Python中为我的网络工作找到面向公众的IP?
答案 0 :(得分:14)
这将获取您的远程IP地址
import urllib
ip = urllib.urlopen('http://automation.whatismyip.com/n09230945.asp').read()
如果您不想依赖其他人,那么只需上传类似PHP脚本的内容:
<?php echo $_SERVER['REMOTE_ADDR']; ?>
并更改Python中的URL,或者如果您更喜欢ASP:
<%
Dim UserIPAddress
UserIPAddress = Request.ServerVariables("REMOTE_ADDR")
%>
注意:我不知道ASP,但我认为这可能是有用的,所以我用Google搜索。
答案 1 :(得分:7)
whatismyip.org更好......它只是将ip作为明文丢弃而没有多余的垃圾。
import urllib
ip = urllib.urlopen('http://whatismyip.org').read()
但是,如果不依赖网络外部的东西,就不可能轻易做到。
答案 2 :(得分:5)
https://api.ipify.org/?format=json非常简单
只需运行requests.get("https://api.ipify.org/?format=json").json()['ip']
就可以解析
答案 3 :(得分:4)
如果您不介意咒骂,请尝试:
将其与常用的urllib内容结合起来,正如其他人所表明的那样。
还有:
答案 4 :(得分:2)
import urllib2
text = urllib2.urlopen('http://www.whatismyip.org').read()
urlRE=re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',text)
urlRE
['146.148.123.123']
尝试将您可以找到的任何'findmyipsite'放入列表中并迭代它们以进行比较。这个似乎运作良好。
答案 5 :(得分:1)
我在上面看到的所有答案都会报告正在使用的任何Web代理的IP地址,不一定是系统的公共IP地址(任何未通过Web代理运行的IP地址都可能具有完全不同的IP地址)。
答案 6 :(得分:0)
这很简单
>>> import urllib
>>> urllib.urlopen('http://icanhazip.com/').read().strip('\n')
'xx.xx.xx.xx'