IP归属地算法原理是怎样的。

任何风 2006-04-14 12:25:40
我看了一下IP归属地数据库,但不知算法原理是怎样的,数据库里面的值同IP好像没有关系的。
...全文
988 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hellohuan 2006-04-14
  • 打赏
  • 举报
回复
用between检索
Hellohuan 2006-04-14
  • 打赏
  • 举报
回复
举个例子

比如110.0.0.1-111.255.255.255属于XX城市,
开始记为110 000 000 001 - 111 255 255 255 <不要空格,主要是看的直观>
IP(111.111.111.1 -> 111 111 111 001) <不要空格,主要是看的直观>
属于那个区间,则为XX城市

IP(112.1.1.1 -> 112 001 001 001) <不要空格,主要是看的直观>
不属于那个区间,

如果数据库中没有记录则为其他
一个城市可能会有多个IP段
Hellohuan 2006-04-14
  • 打赏
  • 举报
回复
127.0.0.1
转换为
127 000 000 001 <不要空格,主要是看的直观>

比较数字段容易了吧
任何风 2006-04-14
  • 打赏
  • 举报
回复
3682598912,3682599432,广东省中山市 电信ADSL
但是在数据库中是以上面这种数据型式来存在某一个城市的范围的。
游北亮 2006-04-14
  • 打赏
  • 举报
回复
数据库里面的值同IP好像没有关系的。

IP格式是: a.b.c.d
那么数据库里的值就是:
a*255*255*255 + b*255*255 + c*255 + d
Hiyeah2001 2006-04-14
  • 打赏
  • 举报
回复
动网和QQ的纯真数据库都是这么转换的
Hiyeah2001 2006-04-14
  • 打赏
  • 举报
回复
dim ip 'ip为取得的IP地址
Function cacuIp(ip)

Dim srIp, aIp
srIp=0
aIp = Split(ip,".")
If UBound(aIP)<>3 Then
cacuIP=0
Exit Function
End If
For i=0 To 3
srIp=srIp+(CInt(aIP(i))*(256^(3-i)))
Next
cacuIp=srIp-1
If Err Then cacuIp=0
End Function

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧