在Python中查找面向公众的IP地址?

在Python中查找面向公众的IP地址?,python,ip-address,Python,Ip Address,如何在Python中为我的网络找到面向公众的IP?这将获取您的远程IP地址 import urllib ip = urllib.urlopen('http://automation.whatismyip.com/n09230945.asp').read() 如果您不想依赖其他人,只需上传以下PHP脚本: <?php echo $_SERVER['REMOTE_ADDR']; ?> 并更改Python中的URL,或者如果您更喜欢ASP: <% Dim UserIPAddr

如何在Python中为我的网络找到面向公众的IP?

这将获取您的远程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,但我想它可能会有用,所以我在谷歌上搜索了一下。

whatismyip.org更好。。。它只是将ip作为纯文本抛出,没有多余的废话

import urllib
ip = urllib.urlopen('http://whatismyip.org').read()

但是,如果不依赖网络之外的东西,是不可能轻松做到这一点的。

如果你不介意咒骂,那么试试:

如其他人所示,将其绑定到通常的urllib内容中

还有:

试着把你能找到的任何“findmyipsite”放到一个列表中,并迭代它们进行比较。这个似乎很好用。

很直截了当

只需运行
requests.get(“https://api.ipify.org/?format=jsonjson()['ip']

这很简单

>>> import urllib
>>> urllib.urlopen('http://icanhazip.com/').read().strip('\n')
'xx.xx.xx.xx'

是的,我问这个问题的目的是回答它,但它不在这里,我可以看到其他人需要该信息。我在上面看到的所有答案都会报告正在使用的任何web代理的IP地址,不一定是您系统面向公众的IP地址(未通过web代理运行的任何内容可能具有完全不同的IP地址)。我引用的链接也没有,它也只是返回原始IP地址。不再只是提供纯文本。似乎还认为我住在堪萨斯州。我们不再住在堪萨斯州了。Toto.whatsmyip.org/com这些天似乎基于用户代理或类似的方式进行阻止;另一个答案中提到的api.ipify.org没有。表示
REMOTE\u ADDR
是“用户查看当前页面的IP地址。"也就是说,您需要将php脚本放在外部服务器上以获取公共ip。此外,
automation.whatismyip.com
不可访问。
http://canihazip.com/s
起作用了。看来automation.whatismyip.com不再运行了,他们想让你建立一个帐户并使用他们的主页。whatsmyip.com/org似乎不是一个好消息不再允许来自未知用户代理的请求。api.ipify.org似乎没有这个问题。让我看看是否可以编辑此答案。使用https添加+1!
>>> import urllib
>>> urllib.urlopen('http://icanhazip.com/').read().strip('\n')
'xx.xx.xx.xx'
import requests
r = requests.get(r'http://jsonip.com')
# r = requests.get(r'https://ifconfig.co/json')
ip= r.json()['ip']
print('Your IP is {}'.format(ip))