Neo's Blog

首頁 相本 討論 書籤

分類目錄
本站日誌 (51)
碎碎唸啦 (173)
網站架設 (84)
程式設計 (161)
軟體使用 (69)
電子商務 (126)
經營奇想 (48)
基金理財 (11)
聰明消費 (87)
電影心得 (47)
開放原碼 (16)
工作記錄 (2)
毛毛小記 (9)
就是不同 (2)




歷史資料
 




September 28, 2006
使用 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/

 
由 Neo 發表於 September 28, 2006 02:11 AM 收進你的MyShare個人書籤  

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


OuTian 發表於 September 28, 2006 01:43 PM

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

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


Neo 發表於 September 28, 2006 02:29 PM

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


ip2nation 發表於 September 28, 2006 06:46 PM

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


Alexander 發表於 September 29, 2006 02:17 PM

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


yesYouDo 發表於 September 29, 2006 09:04 PM

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

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

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


Neo 發表於 September 30, 2006 12:13 AM

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


Steven 發表於 October 6, 2006 05:41 PM
發表迴響  
(*星號開頭為必填欄位)











(請輸入您看到的數字,看不到請按右鍵->顯示圖片)


記住我的資訊?







Copyright 2005 Neo's Blog All rights reserved.