我正在使用 Python2 实现一个使用 dnslib 提供 NAPTR DNS 答案的服务器。
伪造的答案格式如下:
0.0.0.0.0.0.0.e164.arpa. 60 IN NAPTR 20 20 "u" "SIP+E2U" "!^.*$!SIP:0000@whatever.0.0.e164!" .
我使用dig以使用以下语法执行查询:
dig NAPTR 0.0.0.0.0.0.0.e164.arpa @<server_ip>
问题是,只要 NAPTR 记录的正则表达式部分包含抑扬符 (^),dig就会将检索到的数据包标记为格式错误:
;; Got bad packet: syntax error
如果我从字符串中删除抑扬符,查询答案将被正确检索。因此,抑扬符似乎在某种程度上被误解了。我试图指定regexp.encode('utf-8'),但这并没有解决问题。有任何想法吗?