![freebsd postfix python policyd-spf ipアドレス検証エラー](https://rvso.com/image/1542102/freebsd%20postfix%20python%20policyd-spf%20ip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E6%A4%9C%E8%A8%BC%E3%82%A8%E3%83%A9%E3%83%BC.png)
最近、FreeBSDのPostfixメールサーバでパケットに関する問題が発生しました。py27-postfix-policyd-spf-python-1.3.2_1
私のメールログは次のメッセージでいっぱいでした:
policyd-spf[16637]: ERROR: 127.0.0.0/8 in skip_addresses not IP network. Message: '11.22.33.44' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object?. Aborting white list processing.
他の人の提案に従ってPython 3に切り替えても機能しませんでした(シェバンを変更しても、Python 3経由で直接起動しても機能しませんでした)
答え1
私の問題の解決策は(今のところ)関数に次の行を追加することでした_cidrmatch
。/usr/local/bin/policyd-spf
def _cidrmatch(ip, netwrk)
netwrk = unicode(netwrk)
ip = unicode(ip)
try:
address = ipaddress.ip_address(ip)
これは、PythonモジュールipaddrがUnicode文字列のみを処理するようにするためです(エラーメッセージで要求されているように)
ウェブ上の他の投稿で提案されているように python3 に切り替えてもうまくいきませんでした (依存関係がいくつか欠落している可能性があります)。
この投稿もとても役に立ちました https://stackoverflow.com/questions/30389019/valueerror-10-0-0-0-24-does-not-appear-to-be-an-ipv4-or-ipv6-network
ただし、この修正は消えたパケットが更新された後、これは単に役に立つメモとして意図されています私と同じ問題に遭遇した人へ!
本当の解決策を知っている人がいたら、ぜひ教えてください :)