批量域名dig---使用协程

简介:
#!/usr/bin/env python
# _*_coding:utf-8_*_

from gevent import monkey
import gevent
import time
import dns.resolver
monkey.patch_socket()

class MyGeven:

    def __init__(self):
        self.data = {}

    def get_dig_domain(self, domain):
                res = dns.resolver.query(domain, 1)
        for i in res.response.answer:
                for j in i.items:
                 if j.rdtype == 5:
               find_res = j.to_text().find('***dns.com')
                         self.data[domain] = 0 if find_res != -1 else -1
                 else:
                         self.data[domain] = -1
                break

    def gprobe(self, domain_list):
        jobs = []
        for domain in domain_list:
            jobs.append(gevent.spawn(self.get_dig_domain, domain))
        gevent.joinall(jobs)

if __name__ == '__main__':
    start_ts = time.time()
    print "start....."
    domain_list = [
            "www.baidu.com",
                "www.qq.com",
                "www.163.com",
            "dl.3366.com"
    ]
    obj = MyGeven()
    obj.gprobe(domain_list)
    print "请求数:", len(domain_list), "耗时:", time.time() - start_ts, "s"

    print "域名dig:", obj.data



本文转自cloves 51CTO博客,原文链接:http://blog.51cto.com/yeqing/1925168

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
负载均衡 Perl 域名解析
如何使用dig命令挖掘域名解析信息
命令行工具 dig 是用于解析域名和故障排查的一个利器。 从主要功能上来说,dig 和 nslookup 之间差异不大,但 dig 更像一个加强版的 nslookup,可以查询到一些由域名服务器管理的信息,这在排查某些问题的时候非常有用。
查看域名服务器命令: $ dig -t NS xvideos.com
$ dig -t NS xvideos.com ; DiG 9.8.3-P1 -t NS xvideos.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER
4726 0
|
关系型数据库 MySQL
|
JSON 网络协议 数据格式
|
3天前
|
网络协议 对象存储
阿里云oss配置自有域名
阿里云oss配置自有域名
11 1