当前位置:  开发笔记 > 编程语言 > 正文

通过API获取我的公共IP

如何解决《通过API获取我的公共IP》经验,为你挑选了3个好方法。

是否有来自某个大公司的公共API来从程序中获取我的公共IP?

我发现http://ip-address.domaintools.com/myip.xml,这正是我想要的,但不幸的是它阻止了Python urllib以及许多其他的http库,除非你欺骗用户代理(任何做这件事的东西都不能称为API).

问题是我需要这些数据用于一些潜在的开源库,所以我们必须遵守规则.我也知道我可以做类似的事情print $_SERVER[REMOTE_ADDR],但我不想使用我的库为所有人提供流量服务.

那么,是否有类似上面的URL,但真正的API,允许机器人?



1> Jamie Wong..:

虽然不是来自大公司,但所有这些都应该有效:

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

资源

http://www.commandlinefu.com/commands/view/2966/return-external-ip#comment


还有http://ipinfo.io/ip
您可以查看https://www.ipify.org/,它具有明确的API并支持HTTPS.
icanhazip.com返回最干净的结果imho

2> Ben Dowling..:

您可以从我的服务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


不支持HTTPS

3> nbari..:

以json格式提供更多详细信息,如latlong,country,city,user-agent:

https://www.trackip.net/ip?json

要么

https://www.trackip.net/ip

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有