我做个统计网站我是把纯真的IP-地区的数据导到SQL里面的
显示是这样的:
表名:IP 
qishi_ip        jieshu_ip       suozaidi
219.139.32.25   219.139.32.49   湖北省宜昌市 电信
219.139.32.50   219.139.32.51   湖北省宜昌市 IDC机房
219.139.32.53   219.139.32.53   湖北省宜昌市 (夷陵区)乐天溪镇陈家冲飞驰网吧
219.139.32.61   219.139.32.61   湖北省宜昌市夷陵区 樟村坪镇蓝月亮网吧
219.139.32.62   219.139.32.62   湖北省宜昌市 樟村坪镇殷家坪村梦缘网吧
219.139.32.73   219.139.32.73   湖北省宜昌市 (三峡太平溪)双龙网吧
219.139.32.78   219.139.32.78   湖北省宜昌市 三峡坝区奔腾网吧
219.139.32.84   219.139.32.84   湖北省宜昌市 百龄网吧我想要根据输入的 IP(shuru_ip.text) 查找出所在地区 不知道该怎么写.
例:我输入 219.139.32.30  就要查找得到 湖北省宜昌市 电信
(注意:数据库已经固定 怎么固定好根据纯真的升级,程序上随便怎么写都可以,只要得到结果)

解决方案 »

  1.   

    select suozaidi from IP where qishi_ip='219.139.32.30'
      

  2.   

    IP地址分离成四部分。如219.139.32.30,分离为string[] s = new string[]{219,129,32,30}.然后s[3]转换成int32型。在通过qishi_IP和jieshu_IP的比较(可逐位比较,先比较219是否相等,然后下一位),最后通过between查询得出suozaidi .
      

  3.   

    整数要用 uint  不能用int ,不然溢出~~~~~~~   ^_^
      

  4.   

    可以的话把数据库中没一段不足3位的前面用0补足3位
    查询时用
    qishi_ip <= '219.139.032.030' and jieshu_ip >='219.139.032.030'
    不能改数据库的值的话,就直接这样查询
    qishi_ip <= '219.139.32.30' and jieshu_ip >='219.139.32.30'
    再在结果中把不满足条件的数据(很少的)去掉
      

  5.   

    syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) 
    把IP地址转成一个整数就行了
    比如 219.139.32.30 转成 30+32*256+139*256*256+219*256*256*256  然后比较大小.为什么要*256呢?
      

  6.   

    syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) 
    把IP地址转成一个整数就行了
    比如 219.139.32.30 转成 30+32*256+139*256*256+219*256*256*256  然后比较大小.
    这样的话..只要用数组把它们分出来..然后相加(30+32+139+219)..再比较...
      

  7.   

    我觉得 coowoo(性潮和尚) 好象比较好哦!
    qishi_ip <= '219.139.32.30' and jieshu_ip >='219.139.32.30'
    再在结果中把不满足条件的数据(很少的)去掉
    然后在再结果里搜索 qishi_ip(或jieshu_ip) LIKE “%219.139.32.%”存储过程怎么写呢?? 希望有个完整的结果!!~~