俺不懂正则表达式,不过这个问题可以用
explode(".", $ip)
把字符串转化为整数来解决如果你的IP地址范围不是一段,而是多段,这样速度显然更快

解决方案 »

  1.   

    ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$,$ip)
      

  2.   

    <?php
    $ip="101.110.25.415";
    if(ereg("^[1-9][0-9]{1,2}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip))
    {
    echo $ip."通过";
    }
    else
    echo $ip."no pass";
    ?>
    还可以
      

  3.   

    function checkIp($ip){
    $e="(0|1[0-9]{2}|[1-9][0-9]|2[0-4][0-9]|25[0-5])";
    if(ereg("^$e\.$e\.$e\.$e$",$ip)){
    echo $ip."通过<br>";
    }
    else
    echo $ip."错误<br>";
    }
    checkIP("100.210.0.45");
    checkIP("101.210.00.45");
    checkIP("101.256.0.45");
    checkIP("101.255.0.415");
      

  4.   

    谢谢vivanboy的提醒,少了1-9,修正为
    $e="(1[0-9]{2}|[1-9]?[0-9]|2[0-4][0-9]|25[0-5])";
      

  5.   

    結了。
    經典。加入精華區和faq