2012-03-13 9 views
-2

私はIPアドレスのフィールドを持つフォームを持っています。 IPをpingする予定なので、IPが127.0.0.1であることを確認したいと思います。 明らかに、ping 127.0.0.1がローカルホストにpingを実行します。これを防止するためにPHP正規表現:127.0.0.1(およびポートを確認)

は、私がこれをチェックする必要がありますするpreg_match使用したい: を - 127.0.0.1またはポートを備えて127.0.0.1(例えば127.0.0.1:80。)

+0

どのバージョンのPHPのを試すことができますか? ['filter_var'](http://php.net/manual/en/function.filter-var.php)PHP> = v5.2 –

答えて

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

は、トリックを行う必要があります...私はタスクのためのPHPのpreg_match(またはsimilar)を使用している仮定することができます。

+1

@ jperovicの応答に先行するゼロを考慮して更新されました。 –

0

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

127.0.0.1の後にコロンと1つ以上の数字が続くように見えます。

+0

ありがとうございます。次回は区切り文字を含む正規表現を含めてください。また、ポートは5文字に制限する必要があります。 – Jeffrey

+3

@ArtaexMedia - これらのコメントがどのように失礼であると思いますか? –

+2

@ArtaexMedia - 次回は、少なくともあなたがコミュニティにプロンプ​​トを出す前に問題を自分で解決しようとしていることを実感してください。私たちは友好的で、あなたが虐待的でない限り、噛まない。 –

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'; 
    } 
?> 

これは動作するはずです。 ...あなたは先行ゼロを考慮に入れなければならないこと

+0

先行ゼロの呼び出しが良い。 +1 –

0

に注意してください、あなたはこの1 /(127\.0\.0\.1\:.+?\d{1,5})|(127\.0\.0\.1)/