freebsd postfix python policyd-spf ipアドレス検証エラー

freebsd postfix python policyd-spf ipアドレス検証エラー

最近、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

ただし、この修正は消えたパケットが更新された後、これは単に役に立つメモとして意図されています私と同じ問題に遭遇した人へ!

本当の解決策を知っている人がいたら、ぜひ教えてください :)

関連情報