到网上下载个最新的ip地址数据表,看看里面的记录就明白怎么用了http://www.baidu.com/baidu?ie=gb2312&bs=%D6%D0%B9%FAip%B5%D8%D6%B7%B7%D6%C5%E4%B1%ED&sr=&z=&w=%D6%D0%B9%FAip%B5%D8%D6%B7%B7%D6%C5%E4%B1%ED+%CF%C2%D4%D8&ct=0&cl=3&f=8

解决方案 »

  1.   

    看看ip2long()~~这个可能处理IP起来更好点
      

  2.   

    请把几个不同的IP用ip2long转换后打印出来,然后对比~~
      

  3.   

    对比了,
    发现它们都是一一对应的,即一个IP对应一个ip2long值
    怎么使用啊?你有IP表吗?
      

  4.   

    我刚结果过这个问题
    首先要先弄个最新IP表
    然后整理
    得到用户IP后
    先用ip2long转换
    然后再到数据库查找想对应记录
    别忘了between
      

  5.   

    PHP真的冷落到这个地步了?大话一大堆怎么滴的上一句代码啊?望做过这个功能的朋友说说啊,如果PHP不能实现这个功能,大家也告诉我啊,我再想别的办法
      

  6.   

    不是,用php太简单了。
    按行读取地址文本。
    然后分割出row[0]=第一个地址 row[1]=第二个地址。....................
    if(row[0]<=现在的ip&&现在的ip>=row[1])
    {
      echo row[2].row[3];
    }
      

  7.   

    我写了个组件(可以读取纯真QQWRY.DAT IP库、即是QQ显IP的那个文件),可以在网页上转换IP为地理地址的
      

  8.   


    <?
    $sip=$REMOTE_ADDR;
    $str=explode(".",$sip);
    $tatol=sizeof($str);$num=$str[0]*256*256*256+$str[1]*256*256+$str[2]*256+$str[3]-1;
    echo $num;//将IP转换数字//取得区域  
    //数据库连接略        
            $sqlstr="select * from ipaddress where ip1 <='$num' and ip2 >='$num'";
                    $result=mysql_query($sqlstr,$conn);
            $row=mysql_fetch_array($result);
                    //echo $row[country].$row[city];

                    $comefrom=$row[country].$row[city];
    ?>IP表下载,
    http://www.eafu.net/ipaddress.mdb
     自己导入到mysql中吧
    我用这个IP库做了网站流量分析统计,演示地址
    http://www.eafu.net/statistic/
      

  9.   

    ......
    BS楼主
    自己偷懒无能
    还说php没用把ip转为long存在数据库里
    然后把输入的ip也用ip2long转换成整数后
    比较一下大小就可以了