pymilter
0.9.8
|
Miscellaneous functions. More...
Functions | |
def | addr2bin (s) |
def | bin2long6 (s) |
def | inet_ntop (s) |
def | inet_pton (s) |
def | cidr (i, n, mask=MASK) |
def | iniplist (ipaddr, iplist) |
def | parseaddr (t) |
Split email into Fullname and address. More... | |
def | parse_addr (t) |
def | parse_header (val) |
Decode headers gratuitously encoded to hide the content. More... | |
Variables | |
string | PAT_IP4 = r'\.' |
ip4re = re.compile(PAT_IP4+'$') | |
ip6re | |
int | MASK = 0xFFFFFFFFL |
int | MASK6 = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFL |
Miscellaneous functions.
def Milter.utils.addr2bin | ( | s | ) |
Convert a string IPv4 address into an unsigned integer.
References Milter.utils.bin2long6().
Referenced by Milter.utils.iniplist().
def Milter.utils.bin2long6 | ( | s | ) |
Convert binary IP6 address into an unsigned Python long integer.
Referenced by Milter.utils.addr2bin(), and Milter.utils.iniplist().
def Milter.utils.iniplist | ( | ipaddr, | |
iplist | |||
) |
Return whether ip is in cidr list >>> iniplist('66.179.26.146',['127.0.0.1','66.179.26.128/26']) True >>> iniplist('127.0.0.1',['127.0.0.1','66.179.26.128/26']) True >>> iniplist('192.168.0.45',['192.168.0.*']) True >>> iniplist('2001:610:779:0:223:6cff:fe9a:9cf3',['127.0.0.1','172.20.1.0/24','2001:610:779::/48']) True >>> iniplist('2G01:610:779:0:223:6cff:fe9a:9cf3',['127.0.0.1','172.20.1.0/24','2001:610:779::/48']) Traceback (most recent call last): ... ValueError: Invalid ip syntax:2G01:610:779:0:223:6cff:fe9a:9cf3
References Milter.utils.addr2bin(), and Milter.utils.bin2long6().
def Milter.utils.parse_addr | ( | t | ) |
Split email into user,domain. >>> parse_addr('user@example.com') ['user', 'example.com'] >>> parse_addr('"user@example.com"') ['user@example.com'] >>> parse_addr('"user@bar"@example.com') ['user@bar', 'example.com'] >>> parse_addr('foo') ['foo'] >>> parse_addr('@mx.example.com:user@example.com') ['user', 'example.com'] >>> parse_addr('@user@example.com') ['@user', 'example.com']
def Milter.utils.parse_header | ( | val | ) |
Decode headers gratuitously encoded to hide the content.
Spammers often encode headers to obscure the content from spam filters. This function decodes gratuitously encoded headers.
val | the raw header value |
Decode headers gratuitously encoded to hide the content.
def Milter.utils.parseaddr | ( | t | ) |
Split email into Fullname and address.
This replaces email.Utils.parseaddr
but fixes some tricky test cases.
Split email into Fullname and address. >>> parseaddr('user@example.com') ('', 'user@example.com') >>> parseaddr('"Full Name" <foo@example.com>') ('Full Name', 'foo@example.com') >>> parseaddr('spam@spammer.com <foo@example.com>') ('spam@spammer.com', 'foo@example.com') >>> parseaddr('God@heaven <@hop1.org,@hop2.net:jeff@spec.org>') ('God@heaven', 'jeff@spec.org') >>> parseaddr('Real Name ((comment)) <addr...@example.com>') ('Real Name', 'addr...@example.com') >>> parseaddr('a(WRONG)@b') ('WRONG', 'a@b')
Milter.utils.ip6re |