/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/您试一下哦!可能有点长了,我曾今在一本书上看到一个很短的例子一个老外边的,而且有反馈的信息的!

解决方案 »

  1.   

    ereg(/(((2)[0-5][0-5])|((1)[0-9]\d)|([1-9]\d)|[1-9])\.{3}(((2)[0-5][0-4])|((1)[0-9]\d)|([1-9]\d)|[1-9])/,$ip)
      

  2.   

    转贴(max at clnet dot cz)的写法
    <?
    $num="([0-9]|[0-9]{2}|1\d\d|2[0-4]\d|25[0-5])";
     
    /* 
    [0-9] => numbers 0-9 
    [0-9]{2} => numbers 0-99 --> This is missing in satch666 code. It means, that if you write IP 25.213.110.1 function return FALSE!
    1\d\d => numbers 100-199
    2[0-4]\d => numbers 200-249
    25[0-5] => numbers 250-255
    */if (!preg_match("/^$num\.$num\.$num\.$num$/", $$ip_addr)) echo "Wrong IP Address\n";
    ?>