1

この正規表現を機能させようとしています。

[a-z0-9-\.]+(?!.in-addr.arpa*$)

サンプル -

sdfgsed.co.in //shall match
1.1.1.1.in-addr.arpa //shall not match
fgsagf.co.ru //shall match
agfasfdg21.cn //shall match 

編集-

(?i)([a-z0-9-\.]{3,}\.(?!us|com|net)[a-z]{2})+$(?<!\.in-addr\.arpa)\x00

ここで提供された答えを試しました。ドメイン名に対して作成された DNS 要求のパケットを検索する正規表現は、.com .net を想定しています。組織の TDL。他のドメイン名は一致する必要があり、末尾が で終わる逆引き IP ルックアップ要求.in-addr.arpaは一致しないはずです。名前は NULL の 16 進値で終わります。そして、名前はパケットのどこにでもある可能性があります。

パケット ペイロードで検索、例 -

27.5.17.50.in-addr.arpa //reverse IP look up, shall not match
abcd.com // .com TDL shall not match
hacker.ru //shall match
badguy.com.cn //shall match
4

2 に答える 2

3

代わりに後読みアサーションを使用できます。

^[a-z0-9-\.]+$(?<!\.in-addr\.arpa)
于 2013-05-16T19:26:52.463 に答える
0

これを試して:

^[a-z0-9-]++(?>\.(?!in-addr\.arpa$)[a-z0-9-]++)++$
于 2013-05-16T19:36:08.733 に答える