试图让这个正则表达式工作。
[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。任何其他域名都应匹配,并且以.in-addr.arpa
结尾的任何反向IP查找请求都不应匹配。名称以十六进制值NULL结尾。名称可以是数据包中的任何位置。
在数据包有效负载中搜索,示例 -
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
答案 0 :(得分:3)
您可以使用后视断言:
^[a-z0-9-\.]+$(?<!\.in-addr\.arpa)
答案 1 :(得分:0)
试试这个:
^[a-z0-9-]++(?>\.(?!in-addr\.arpa$)[a-z0-9-]++)++$