在網上很多工具可以檢查 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.”.
貌似获取的是IP库资料。