if(strcmp($ip1,$ip2)==0)
echo "equal";
if(strcmp($ip1,$ip2)>0)
echo "1>2";
if(strcmp($ip1,$ip2)<0)
echo "1<2";

解决方案 »

  1.   

    vivanboy(被迫早起的鸟儿)(★★★★★) :
    有呵,我要完成屏蔽这一段的ip不能访问功能呵
      

  2.   

    要比较 IP 的范围,必须先把
    aaa.bbb.ccc.ddd
    形式的字符串转换为整型一般都应该是前面的部分相同,后面的部分不同,例如 aaa.bbb 固定,而 ccc.ddd 在一个范围内,或者 aaa.bbb.ccc 固定,而 ddd 在一个范围内
    这是,只需要把后面的部分转换为整数:对 ccc.ddd:$s_ip = "aaa.bbb.ccc.ddd";
    $a = explode('.',$s_ip);
    $i_ip = $a[2]*256+$a[3];
    //假设要限定在 "xxx.xxx.111.111" - "xxx.xxx.222.222" 之间:
    // 111=0x6f, 222=0xde
    if ( 0x6f6f <= $i_ip && $i_ip <= 0xdede )
        //合法 IP
    else
        //非法 IP要是只规定 ddd 就更简单了:$s_ip = "aaa.bbb.ccc.ddd";
    $a = explode('.',$s_ip);
    //假设要限定在 "xxx.xxx.xxx.111" - "xxx.xxx.xxx.222" 之间:
    if ( 0x6f <= $a[3] && $a[3] <= 0xde )
        //合法 IP
    else
        //非法 IP
      

  3.   

    function ipVal($ip){
    $e="(1[0-9]{2}|[1-9]?[0-9]|2[0-4][0-9]|25[0-5])";
    if(ereg("^$e\.$e\.$e\.$e$",$ip,$arr)){
    return (($arr[1]*256+$arr[2])*256+$arr[3])*256+$arr[4];
    }
    else
    return -1;
    }
    echo ipVal("100.210.0.45")."<br>";
    echo ipVal("101.210.0.48")."<br>";
    echo ipVal("101.210.0.48")-ipVal("101.210.0.45")."<br>";
    echo ipVal("101.210.0.48")>ipVal("101.210.0.45")."<br>";