使用 ip2nation 取得 IP 位址所在的國家別

ip2nation 已經把 IP 所在的國別整理成 SQL 語法,只要下載下來放進資料庫即可:
http://www.ip2nation.com/ip2nation/Download


20060928_02.png
(IP 資料庫最後更新日期是上個月,應該有在持續更新)

放進資料庫之後,要使用的話必須把 IP 轉為數字進行查詢,ip2nation 有提供 PHP 的範例:

$server = ”; // MySQL hostname
$username = ”; // MySQL username
$password = ”; // MySQL password
$dbname = ”; // MySQL db name

$db = mysql_connect($server, $username, $password) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

$sql = ‘SELECT c.country
FROM ip2nationCountries c, ip2nation i
WHERE
i.ip < INET_ATON(“‘.$_SERVER[‘REMOTE_ADDR’].'”)
AND c.code = i.country
ORDER BY i.ip DESC LIMIT 0,1′;

list($countryName) = mysql_fetch_row(mysql_query($sql));

// Output full country name
echo $countryName;

(使用 MySQL 的 INET_ATON() 函式把 IP 轉為數字)

如果不是用 MySQL 就必須自行做 IP 轉換的計算,計算的方式以 261.230.14.128 為例:
 261×2563 + 230×2562 + 14×256 + 128

PHP 的轉換範例:

$ip = split (“\.”, “261.230.14.128”);
echo $ip[3] + $ip[2]*256 + $ip[1]*256*256 + $ip[0]*256*256*256;

ip2nation 網址:
http://www.ip2nation.com/

7 comments On 使用 ip2nation 取得 IP 位址所在的國家別

  • 和 geoip 比起來不知道哪個比較準 ? :p

  • OuTian 你突然跳出來真素嚇鼠人啦~:P

    ip2nation 目前我這邊測試都還算正確,wordpress 也有很多 plugin 是用 ip2nation 做的。ip2nation 雖然名氣沒有 GeoIP 來的大,但應該不會有太大的誤差。^^

  • 我見過一個能定位到大陸各城市的在線定位的網站, 有興趣的可以試試:
    http://www.123cha.com

  • 其實geoip就已經提供移植到資料庫的方法了
    並且精準到城市喔

  • 不知ip可以拿來做什麼用?
    可以介紹一下嗎?

  • Alexander:
    就我說知,Geoip 應該是提供 CSV 吧? 還是需要手動匯入資料庫。ip2nation 有個好處就是他的下載格式是 zip 檔,解開之後就是 sql 語法,做線上更新就很方便。

    只是 ip2nation 沒有城市倒是真的。^^

    yesYouDo:
    取得 IP 所在的國別,可以判別使用者的所在地區,自動顯示當地的語言、統計世界各地連入的人數,或是阻擋某個地區的 IP 連入…etc

  • 這的確是挺方便的
    可以做一些有參考性的IP統計數據

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar