如何算一个IP地址是否在一个IP段内? (30分)

  • 主题发起人 主题发起人 ztaif
  • 开始时间 开始时间
Z

ztaif

Unregistered / Unconfirmed
GUEST, unregistred user!
比如:IP地址: 手工输入
IP段已知: 192.168.000.001 到 192.168.255.255 局域网IP
061.013.110.001 到 061.013.110.255 台湾省
如果IP地址在局域网段内,showmessage (' 这是局域网IP' )
如果IP地址在另一网段内,showmessage (' 这是台湾省IP' )
如何实现?
 
查各级 NIC 的数据库,否则自己建。
 
我有数据库,可是不知道怎么算一个IP是否在一个IP段内! 请教教我怎么算
 
start0=inet_Addr(pchar('192.168.000.001'));
end0 =inet_Addr(pchar('192.168.255.255'));
ip=inet_Addr(pchar('待测IP'));
if (ip>=start0) and (ip<=end0) then
showmessage (' 这是局域网IP' )
 
如果你的输入都是那么整齐的字符串,用字符串大小比较就行了。如果指定的IP字符口串
比范围开始和结束的两个字符串都大或都小,就不在这个范围内,否则就在这个范围内。
 
串比较不是好方法,192.168.32.1 不能要求写成 192.168.032.001 那不现实.
 
用POS('.',STR)查找点号,用STRTOINT()把第一和第二个点号前面字符变成数字,判断是否
相等
 
IP本来就是dword,按位分解以后看前面的几位是否一致,如果是就可以确定了,
换成字符处理太麻烦,效率不高!
 
把程序发给我,我帮你搞,我正想找这个IP地址库呢。
truecat6108@163.com
 
接受答案了.
 
后退
顶部