rbl interface in python (spamming)?

Paul Wright -$Paul$- at verence.demon.co.uk
Wed Nov 15 20:15:49 CET 2000


In article <8upo9e$jrp$1 at nnrp1.deja.com>,  <pereran at my-deja.com> wrote:
>Looking for a python module that talks to RBL

The RBL just uses a DNS zone. To look see if IP address a.b.c.d is in
the RBL, look up d.c.b.a.rbl.maps.vix.com. If it exists, that host is in
the RBL. You can do DNS lookups using the gethostbyname function in the
socket module. Here's an example:

import string
import socket

def is_in_rbl (ip, rbl_domain = "rbl.maps.vix.com"):
    
    l = string.split (ip, ".")
    l.reverse ()
    lookup_host = string.join (l, ".") + "." + rbl_domain
    try:
        addr = socket.gethostbyname (lookup_host)
    except socket.error:
        addr = ''

    # Some RBL-like lists use the returned addr to signify something,
    # so we'll return it.
    return addr 
      
if __name__ == "__main__":
    if is_in_rbl ("127.0.0.2"):
        print "127.0.0.2 is in the RBL."

    if is_in_rbl ("127.0.0.2", "relays.orbs.org"):
        print "127.0.0.2 is in the ORBS."
# Cut here

What I think would be really cool is an automated spam reporting helper
using Python. There's one in Perl but I can't help thinking Python would
be easier to extend, and to add a GUI too and so on. Maybe I'll write
one.

-- 
----- Paul Wright ------| 12. The Enterprise visits an earth-type planet
-paul.wright at pobox.com--| called "Paradise" where everyone is happy all of
http://pobox.com/~pw201 | the time. However, everything is soon revealed to
                        | be exactly what it seems.



More information about the Python-list mailing list