PHP 查詢 IP 所屬國家

要查詢 IP 所屬國家, 一般上會用 IP 資料庫查詢, 網上也有一些網站可以免費查詢, 但如果想在自己的 PHP 程式, 查詢 IP 所屬國家, 便需要下載一些 IP 轉國家的資料庫, 有付費及免費。

另一個較簡單方便的做法, 是使用 API 查詢, 以下會示範使用 freegeoip.net 的免費服務查詢 IP 所屬國家的方法。

freegeoip.net 把供 CSV, XML 及 JSON 幾種格式的 API, 使用方法也很簡單, 例如想取得 8.8.8.8 的資料, 只要開啟以下網站:

CSV:
http://freegeoip.net/csv/8.8.8.8

XML:
http://freegeoip.net/xml/8.8.8.8


JSON:
http://freegeoip.net/json/8.8.8.8

以下是使用 PHP 內建的 json_decode() 函式, 讀取 freegeoip 的 JSON 資料的例子。

freegeoip 回傳的資料, 除了國家名稱外, 也有國家代號, 區域, 城市, 郵政編號及時區等, 以下是回傳的參考資料:

現在假設只要取得 country_name, 即國家名稱, 可以這樣寫:

以上方法除了可以在 PHP 使用外, 在其他程式語言 (如 Shell Script, Python) 使用也很方便, 如果需要查詢更詳細的 IP 資料, 例如 IP 所屬的網路供應商等, 便需要購買相關服務了。


Latest Comments

  1. 混水摸魚 11 October 2017

Leave a Reply