[Tutor] advise on using re

Norman Khine norman at khine.net
Sun Feb 15 11:53:42 CET 2009


Hello,
What am I doing wrong here.

 >>> import smtplib, socket, re, os, operator, sys
 >>> domain = 'abakuc.com'
 >>> validMXservers = []
 >>> MXlocate = re.compile('^.*preference = (\d*).*exchanger = (.*)$', 
re.IGNORECASE)
 >>> MXservers = os.popen('nslookup -querytype=MX %s' %domain, 'r')
 >>> for line in MXservers:
...     if 'mail exchanger' in line:
...             MXcheck = MXlocate.match(line)
...             if MXcheck:
...                     MXserver = MXcheck.group(1), MXcheck.group(2)
...                     validMXservers.append(MXserver)
...
 >>> validMXservers
[]
 >>> print MXservers
<open file 'nslookup -querytype=MX abakuc.com', mode 'r' at 0x50c9f8>
 >>> print line


 >>> print MXcheck
None
 >>>

On the shell, the command

$ nslookup -querytype=MX abakuc.com
Server:         193.252.19.3
Address:        193.252.19.3#53

Non-authoritative answer:
abakuc.com      mail exchanger = 30 ASPMX3.GOOGLEMAIL.com.
abakuc.com      mail exchanger = 30 ASPMX4.GOOGLEMAIL.com.
abakuc.com      mail exchanger = 30 ASPMX5.GOOGLEMAIL.com.
abakuc.com      mail exchanger = 60 mail.abakuc.com.
abakuc.com      mail exchanger = 10 ASPMX.L.GOOGLE.com.
abakuc.com      mail exchanger = 20 ALT1.ASPMX.L.GOOGLE.com.
abakuc.com      mail exchanger = 20 ALT2.ASPMX.L.GOOGLE.com.
abakuc.com      mail exchanger = 30 ASPMX2.GOOGLEMAIL.com.


I would like to extract the MX servers in to a list.

Cheers

Norman


More information about the Tutor mailing list