2011-12-19 22 views
0

いくつかのサーバの再IPに備えて、私は設定ファイルにあるサーバ上のすべてのIPアドレスを検索します。サーバ上の設定ファイルでハードコードされたIPアドレスを見つける

simpleminded最初の試み:

grep -e "[0-9]*\\.[0-9]*\\.[0-9]" 

..produces偽陽性なし桁の文字列も許可されているため。また、有効なIPアドレスではない1.2.3.4.5のようなバージョン番号を見つけます。

誰かがこれについて考えて、完全なIPアドレスを思いついて、すべての例外をカバーする正規表現grepを見つけたと確信しています。

+1

チェック:http://stackoverflow.com/questions/106179/regular-expression-to-match-hostname-or-ip-address – ennuikiller

+0

ありがとう!それは正しい答えに向かう良いヒントですが、与えられた正規表現はそのまま動作しません。 –

+0

ieerep '([[:digit:]] {1,3} \。){3} [[:digit:]] {1,3}'は5桁のシリアル番号も見つけます... –

答えて

2

どのようにこのことについて:-e "拡張" のgrepと

(^|[^\.0-9])([0-2]?[0-9]{,2}\.){3}[0-2]?[0-9]{,2}($|[^\.0-9]) 

を実行します。 4つ以上の繰り返しグループを持つ数値と一致しないか、または299を超える数値に一致しません(255を超えないようにするのが最も良い)。

明らかに、IPv4のこの唯一の作品は住所が...

EDIT:this questionの答えに

ビル、ここでの唯一の有効なIPv4アドレスと一致するバージョンが(だ、それは勝ったので、私はそれを修正「Tマッチつ以上のグループでの数字):ここ

(^|[^\.0-9])(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])($|[^\.0-9]) 
関連する問題