Hello,

I am using simple python script to parse postfix logs, and ban offending
IP addresses. One of the patterns I am matching is unknown host:

    NOQUEUE: reject: RCPT from unknown[195.133.40.183]: 450 4.7.25
Client host rejected: cannot find your hostname

The problem is, postfix does not seem to distinguish between IP having
no DNS record, and my DNS server being temporarily unavailable.

I don't want to ban IP only because my DNS server did not respond (for
whatever reason)

How can I solve this?
Can Postfix give different errors?

Here is how I would do it in python:

    try:
        return socket.gethostbyaddr(addr)
    except socket.herror as e:
        if e.errno == 1:
            return None
        else:
            return -1

None is having no record, -1 is DNS temporarily unavailable

any other comments or suggestions are welcome

thanks,

Reply via email to