互联网上有很多服务可以找到我们机器的外部IP地址,但这些服务通常还提供Internet提供商或国家(或两者)的信息。
那么我的问题是:如果知道IP地址,如何通过编程方式获取此类信息?是否有一些公共目录或检索此类信息的API?
互联网上有很多服务可以找到我们机器的外部IP地址,但这些服务通常还提供Internet提供商或国家(或两者)的信息。
那么我的问题是:如果知道IP地址,如何通过编程方式获取此类信息?是否有一些公共目录或检索此类信息的API?
您可以使用我的服务,即http://ipinfo.io API。这里是它提供的详细信息示例:
$ curl ipinfo.io
{
"ip": "67.188.232.131",
"hostname": "c-67-188-232-131.hsd1.ca.comcast.net",
"city": "Milpitas",
"region": "California",
"country": "US",
"loc": "37.44040000000001,-121.87049999999999",
"org": "AS7922 Comcast Cable Communications, Inc.",
"postal": "95035",
"phone": 408
}
查看http://ipinfo.io/developers获取更多信息。
使用此代码 http://ip-api.com/json/[IP地址]
,例如:http://ip-api.com/json/113.14.168.85
输出结果:
{"as":"AS4134 Chinanet","city":"Nanning","country":"China","countryCode":"CN","isp":"China Telecom","lat":22.8167,"lon":108.3167,"org":"China Telecom","query":"113.14.168.85","region":"45","regionName":"Guangxi Zhuangzu Zizhiqu","status":"success","timezone":"Asia/Shanghai","zip":""}
请查看Maxmind的GeoIP数据库。它是免费的,我已经在许多Java应用程序中使用它。
curl https://api.ipdata.co/70.70.70.70
{
"ip": "70.70.70.70",
"city": "",
"region": "",
"region_code": "",
"country_name": "Canada",
"country_code": "CA",
"continent_name": "North America",
"continent_code": "NA",
"latitude": 43.6319,
"longitude": -79.3716,
"asn": "AS6327",
"organisation": "Shaw Communications Inc.",
"postal": "",
"currency": "CAD",
"currency_symbol": "$",
"calling_code": "1",
"flag": "https://ipdata.co/flags/ca.png",
"emoji_flag": "\ud83c\udde8\ud83c\udde6",
"time_zone": "",
"is_eu": false,
"suspicious_factors": {
"is_tor": false
}
}⏎
技术在不断进步。经过6年后的再次审视您的问题,IP2Location 现提供了从 IP 地址获取国家、地区或省份、城市、纬度和经度、邮政编码、时区、互联网服务提供商(ISP)或公司名称、域名、网络速度、区号、气象站代码、气象站名称、移动国家代码(MCC)、移动网络代码(MNC)和运营商品牌、高度、使用类型、代理检测等信息。