Adresse IP privée identifier, dans l'Expression Régulière

Je me demande si c'est la meilleure façon de faire correspondre une chaîne qui commence avec une adresse IP privée (Perl-style Regex):

(^127\.0\.0\.1)|(^192\.168)|(^10\.)|(^172\.1[6-9])|(^172\.2[0-9])|(^172\.3[0-1])

Merci beaucoup!

  • Tout d'abord, vous devez examiner RFC1918 pour obtenir la bonne liste. Deuxièmement, je suggère qu'une solution n'impliquant pas les expressions régulières seront plus faciles à entretenir. Une fois que vous convertir une adresse IP numérique, il est assez facile pour le match contre le une liste de plages d'adresses IP. Cela vous permettra aussi d'utiliser facilement à la disposition du public bogon listes, qui contiennent beaucoup plus que RFC1918.
  • vrai, mais pour des utilisations comme l'un Tomcat à Distance Filtre d'Adresse vous avez besoin d'une expression régulière.
  • C'est une erreur de débutant à penser ^ signifie "non" dans ce contexte, il faut aussi souligner: Chaque ^ dans votre expression simplement ancres le match au début de la ligne. Traditionnelle de la regex, il n'y a pas de moyen simple de dire "non, pas cette chaîne" bien que Perl-compatible / PCRE expressions négatives lookaheads avec (?!...)
InformationsquelleAutor caseyamcl | 2010-05-11