我正在使用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'),但这并没有解决问题。 有什么想法吗?