ip2nation 已經把 IP 所在的國別整理成 SQL 語法,只要下載下來放進資料庫即可:
http://www.ip2nation.com/ip2nation/Download
放進資料庫之後,要使用的話必須把 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統計數據