![freebsd postfix python policyd-spf ip 位址驗證錯誤](https://rvso.com/image/1542102/freebsd%20postfix%20python%20policyd-spf%20ip%20%E4%BD%8D%E5%9D%80%E9%A9%97%E8%AD%89%E9%8C%AF%E8%AA%A4.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 不起作用(既不更改 shebang,也不直接透過 python3 啟動它
答案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
但請記住:此修復將消失了資料包更新後,所以這只是旨在作為有用的註釋給遇到跟我一樣問題的人!
因此,如果有人有真正的解決方案,請告訴我們:)