在网上很多工具可以检查 IP 所属国家, 大多数都是付费工具, 免费版 IP 的覆蓋率较低, 及只包含基本国家资讯。
今天介绍的是 IP Geolocation API, 虽然它也有收费版, 但这只适用于商用量用户, 免费版提供每日 1,000 个查询, 及不支援 SSL, 其他内容与付费版是一样的。
使用上十分简单, 只要用 GET 请取网页内容就可以, 例如 Google 的 DNS IP 也址 8.8.8.8:
http://ipinfo.io/8.8.8.8/json
以上网页会回传所有关于 IP 地址 8.8.8.8 的资料, 用 PHP 撷取是这样::
|
1 2 3 4 5 6 7 |
<?php $ip = "8.8.8.8"; $result = file_get_contents("http://ipinfo.io/$ip/json"); echo $result; ?> |
上面程式码会回传这样的结果:
|
1 2 3 4 5 6 7 8 9 10 |
{ "ip": "8.8.8.8", "hostname": "google-public-dns-a.google.com", "city": "Mountain View", "region": "California", "country": "US", "loc": "37.3860,-122.0838", "org": "AS15169 Google Inc.", "postal": "94040" } |
如果只想读取个别字段资料, 例如组织资料, 上面是用 org 字段, 当然可以用 PHP 过滤, 但用 IP Geolocation API 已经内建了相关功能, 做法是这样:
|
1 2 3 4 5 6 7 |
<?php $ip = "8.8.8.8"; $result = file_get_contents("http://ipinfo.io/$ip/org"); echo $result; ?> |
这样就会只回传组织资料, 即 “AS15169 Google Inc.”.