PHP正则表达式:127.0.0.1(和检查端口)

时间:2012-03-13 19:02:56

标签: php regex

我有一个表单,其中包含一个IP地址字段。 我想检查IP是否为127.0.0.1,因为我要ping IP。 显然ping 127.0.0.1将ping本地主机。

为了防止这种情况,我想使用preg_match来检查: - 127.0.0.1或127.0.0.1,包括一个端口(例如127.0.0.1:80)

4 个答案:

答案 0 :(得分:2)

<?php
    $pattern = "/^127\.0{0,3}\.0{0,3}.0{0,2}1(:\d+)?$/";
    $string = "127.0.0.1:8080";

    if ( preg_match($pattern, $string)){
        echo 'is a match';
    }else{
        echo 'is not a match';
    }
?>

这应该有效。请注意,您必须考虑前导零...

答案 1 :(得分:0)

127\.0\.0\.1(?:\:[0-9]+)?

使用冒号后跟一个或多个数字查找127.0.0.1。

答案 2 :(得分:0)

^127\.0{1,3}\.0{1,3}\.0{,2}1(:[0-9]+)?$

应该做的诀窍......如果我能假设你正在使用PHP的preg_match(或similar)来完成任务。

答案 3 :(得分:0)

你可以尝试这个 /(127\.0\.0\.1\:.+?\d{1,5})|(127\.0\.0\.1)/