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')を指定しようとしましたが、問題は解決しませんでした。何か案は?