Getting my public IP via API [closed]

2019-01-10 04:35发布

问题:

Is there a public API from some big company to get my public ip from within a program?

I've found http://ip-address.domaintools.com/myip.xml, which is exactly what I want, but unfortunately it blocks Python's urllib as well as many other http libraries, unless you spoof user-agent (anything doing that can't be called an API at all).

The problem is that I need this data for some potentially open source library, so we have to play by the rules. I also know that I can just do smth like print $_SERVER[REMOTE_ADDR], but I don't want to server traffic to everyone using my library.

So, is there something like the URL above, but real API, that allows robots?

回答1:

While not from big companies, all of these should work:

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

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


回答2:

You can get your IP, and a whole bunch of other information, from my service http://ipinfo.io:

$ 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
}

If you want just the IP:

$ curl ipinfo.io/ip
67.188.232.131

That also works for other fields, eg:

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

More details available at http://ipinfo.io/developers



回答3:

In json format giving more details like latlong, country, city, user-agent:

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

or

https://www.trackip.net/ip



回答4:

I use this one, easy to remember and it's shorter than others:

$ curl ifconfig.me

PROTIP: Remember that if you use curl in shell scripts you have to use -s option, otherwise it prints the download progress table.

$ echo `curl -s ifconfig.me`



回答5:

you can use web service API's which do this work like:

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

good luck!!!



回答6:

Access ip infomation using this api:

http://cms.javabrown.com/jws/ws.php?service=IpService

JSONP:

http://cms.javabrown.com/jws/ws.php?service=IpService&callback=?



回答7:

Yes you may try out with whoisthisip.com

http://whoisthisip.com/HRAS/ Register to whoisthisip.com to get a website's IP address information such as city location, country location and domain name.

Once signed in, you will be given a reference code and a url to view and get the information of IP address for the website you registered.



回答8:

If you cannot install curl in your system wget variant would be:

wget -qO- curlmyip.com


标签: api ip