IP地址轉換成IP Number並得到國家
今天在家裡沒有什麼事做,就在網上走走看,看了一篇根據IP地址找到國家;這個其實在我們工作都用到個,但是不知道是怎麼來做的.
在下面我將把http://www.codeproject.com/KB/aspnet/aspxcode_net.aspx翻譯過與大家一起來分享;
原理:現在各個國家的IP都有一個IP Begin Number 和一個Ip End Number數字,把國家的開始的資料,各結束的資料都存在資料庫
最後通過一個計算公式把真實的IP地址轉換成Ip Number,從資料庫中找在Begin ,End之間的,如果在這間,就是這個國家的了;
關於各個國家的IP Number這個應該是國標的吧,應該不會變的,在文章的後提供下載;
IP Number計算公式:
IP Number = 16777216*w + 65536*x + 256*y + z (1)
where
IP Address = w.x.y.z
說明:16777216,65536,256;這個數都是係數,就像圓周率3.14一樣
w.x.y.z分別對應真實的IP地址,eg:192.168.0.19;link
eg:
IP Address = 202.186.13.4
So, w = 202, x = 186, y = 13 and z = 4
IP Number = 16777216*202 + 65536*186 + 256*13 + 4
= 3388997632 + 12189696 + 3328 + 4
= 3401190660
這樣就得到一個Ip Number了,現在我們就可以到我們的資料庫去找它對就的IP段,即能得來是哪一個國家
關於從資料庫的代碼我就不多說了喲
關鍵是我們要明白原理,找到解決方案的思路;
國標IP範圍下載:http://files.cnblogs.com/caodaiming/ip-to-country.zip
文章轉自: http://www.cnblogs.com/caodaiming/archive/2008/08/09/1264233.html