现有IP地址对应表一份
结构如下:
ip1           ip2            country     city 
210.13.78.0   210.13.78.193  宁夏银川市  网通
210.13.78.194 210.13.78.206  上海市      网通
210.13.78.207 210.13.78.255  宁夏银川市  网通我如何将获取到的IP判断出属于哪个地址

解决方案 »

  1.   

    使用纯真IP数据库如下:   
      http://www.cz88.net/fox/   
      然后,根据特定的算法计算。   
      不用收费   
      

  2.   

    先转换成十六进制,再比较大小就可以了
    210.13.78.0 210.13.78.193 宁夏银川市 网通
    210.13.78.194 210.13.78.206 上海市 网通
    210.13.78.207 210.13.78.255 宁夏银川市 网通输入数据库中:
    D20D4E00  D20D4EC1 宁夏银川市 网通
    D20D4EC2  D20D4ECE 上海市 网通
    D20D4ECF  D20D4EFF 宁夏银川市 网通
    来了一个IP以后也是变成十六进制,然后select addrname from iptable where ip >= startip and ip <= endip这样就可以得到了
      

  3.   

    晕 你直接比较最后一位的大小不就可以了 210.13.78.193 这个用String的split方法 按 . 分割出来得到最后一位193 然后看193属于哪个范围的数字就可以判断这个ip所属的地方了
      

  4.   

    所以转换成十六进制比较就可以了,一定是大于开始小于结束的。又或者转换成整齐的三位数也行210.13.78.0 → 210013078000 这样也可以。用Long比较就行