这里有个问题要注意

pip install dnspython

这个要注意版本,我们的生产环境是python2.7,生产的我就不安装python3了,所以Python2.7安装要指定版本

pip install dnspython==1.16.0

官方网站
https://pypi.org/project/dnspython/1.16.0/

然后就是这个方法

老版的可以用query,新版就是dns.resolver.resolve()

resultMX = dns.resolver.query(‘fuck.com’, ‘MX’)

#!/usr/bin/python

import telnetlib
import dns.resolver

'''
下面是测试代码
'''


# try:
#     resultMX = dns.resolver.query('fuck.com', 'MX')
#     for exdata in resultMX:
#         res = exdata.to_text()
#         av = res.split(' ')
#         print(av)
# except:
#     print('error domain')
#
# try:
#     server = telnetlib.Telnet('fuck.com', 25,timeout=5)
# except:
#     print('could not connect server')

def getMXvalue(domain):
    try:
        resultMX = dns.resolver.query(domain, 'MX')
        for exdata in resultMX:
            res = exdata.to_text()
            av = res.split(' ')
            return 1, av[1]
    except:
        return 0, domain


with open('domain_name.txt', 'r') as file_object:
    lines = file_object.readlines()
    for line in lines:
        new_line = line.strip('\n')
        ret = getMXvalue(new_line)
        list_ret = list(ret)
        if list_ret[0] == 1:
            try:
                server = telnetlib.Telnet(list_ret[1], 25, timeout=5)
                server.open(list_ret[1], 25)
                print('domain %s port 25 connected ok' % list_ret[1])
            except:
                print('domain %s port 25 connect time out' % list_ret[1])
            finally:
                server.close()
        else:
            print('mx does not exist  %s' % list_ret[1])
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐