通过API获取我的公网IP

83

是否有一些大公司提供公共API来获取程序内部的公共IP地址?

我找到了http://ip-address.domaintools.com/myip.xml,这正是我想要的,但不幸的是它会阻止Python的urllib以及许多其他HTTP库,除非你伪装用户代理(任何这样做的东西都不能被称为API)。

问题是我需要这些数据用于一些可能是开源代码库,所以我们必须遵守规定。我也知道我可以像这样做:print $_SERVER[REMOTE_ADDR],但我不想将服务器流量交给使用我的库的每个人。

因此,是否有类似上述URL的真正API,允许机器人使用?


1
Duck Duck Go有一个公共方法可以确定您的IP地址。由于此问题已关闭,我无法添加答案,因此在此处详细说明:https://dev59.com/-HRB5IYBdhLWcg3weHHx#33743758 - ArtOfWarfare
4
https://www.ipify.org/ 是一项替代性服务。 - Horcrux7
我建议尝试Ipregistry:https://api.ipregistry.co/?key=tryout(免责声明:我是该服务的运行者)。 - Laurent
https://api.ident.me 欢迎机器人 :) - Pierre Carrier
显示剩余2条评论
8个回答

100

虽然不是来自大公司,但这些都应该可以使用:

curl icanhazip.com
curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0-9\.]*\).*/\1/g'
host -t a dartsclink.com | sed 's/.*has address //'
curl curlmyip.com
curl ifconfig.me # this has a lot of different alternatives too, such as ifconfig.me/host

Source


1
太棒了!非常感谢,特别是关于dyndns的部分,那就可以了! - Slava V
4
icanhazip.com 返回的结果是我认为最干净的。 - mnagel
4
同时,http://ipinfo.io/ip - Ben Dowling
@mnagel 看起来它似乎是唯一支持HTTPS的。多么讽刺啊... - Navin
4
你可以查看 https://www.ipify.org/,它具有清晰的API并支持HTTPS。 - Yoan Tournade
显示剩余3条评论

47

您可以从我的服务http://ipinfo.io获取您的IP地址和大量其他信息:

$ curl ipinfo.io
{
  "ip": "67.188.232.131",
  "hostname": "c-67-188-232-131.hsd1.ca.comcast.net",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "loc": "37.385999999999996,-122.0838",
  "org": "AS7922 Comcast Cable Communications, Inc.",
  "phone": 650
}

如果您只想获取IP地址:

$ curl ipinfo.io/ip
67.188.232.131

这也适用于其他领域,例如:

$ curl ipinfo.io/org
AS7922 Comcast Cable Communications, Inc.

更多详细信息请访问 http://ipinfo.io/developers


2
不支持HTTPS。 - Navin
付费计划都支持HTTPS。请参见http://ipinfo.io/pricing。 - Ben Dowling
不支持IPv6... - rustyx
它通过v6.ipinfo.io支持IPv6。 - Ben Dowling
看起来现在支持https,无需付费计划。 - Raman

20

1
不错,还支持IPv6。 - rustyx
1
也支持https。已点赞。 - Ayan Sengupta

3

我使用这个命令,易于记忆且比其他命令更短:

$ curl ifconfig.me

提示:如果在shell脚本中使用curl命令,需要使用-s选项,否则会打印下载进度表。

$ echo `curl -s ifconfig.me`


3
我正从_ifconfig.me_ 切换到 _ipinfo.io_,因为前者速度较慢。 - rodvlopes
不支持IPv6... - rustyx

0

您可以使用像这样的 Web 服务 API 来完成此工作:

see example of service: http://ip-api.com and usage: http://whatmyip.info

祝你好运!!!


http://ip-api.com/json 是最快的方式,响应时间也是最好的。每分钟可处理150个请求。 - نرم افزار حضور و غیاب

0

是的,您可以通过whoisthisip.com进行尝试。

http://whoisthisip.com/HRAS/ 注册whoisthisip.com以获取网站的IP地址信息,例如城市位置、国家位置和域名。

一旦登录,您将获得一个参考代码和一个URL,以查看并获取您注册的网站的IP地址信息。



-1
如果您的系统无法安装curl,可以使用wget替代。
wget -qO- curlmyip.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接