< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
where
IP Address = w.x.y.z
So, w = 202, x = 186, y = 13 and z = 4
IP Number = 16777216*202 + 65536*186 + 256*13 + 4
= 3388997632 + 12189696 + 3328 + 4
= 3401190660
来自:http://www.cnblogs.com/caodaiming/archive/2008/08/09/1264233.html
原理:现在各个国家的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.4So, 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
本文转自 netcorner 博客园博客,原文链接: http://www.cnblogs.com/netcorner/archive/2009/01/09/2912087.html ,如需转载请自行联系原作者