试图让这个正则表达式工作。
[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 的十六进制值结尾。名称可以在数据包中的任何位置。
在数据包有效载荷中搜索,示例 -
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