多线程批量域名信息查询

写了一个多线程的批量域名信息查询,data.txt存储需要的查询域名。查询结束后,生成的结果会分别存储在以域名为的文件名的文件中

#!/usr/bin/python
# -*- coding: utf-8 -*-
#by zsdlove
import whois
import json
import threadpool
def domain(dm):  #获取域名信息
    pfile = open("info%s.txt"%dm, "a+")
    info=whois.whois(dm)
    dminfo=json.loads(str(info))
    #print "域名:",dminfo["domain_name"]
    if (isinstance(dminfo["domain_name"], list)):
        print "域名:".decode('utf-8'), str(dminfo["domain_name"][0])
        pfile.write(str(dminfo["domain_name"][0]))
        pfile.write('\n')
    else:
        print "域名:".decode('utf-8'), str(dminfo["domain_name"])
        pfile.write(str(dminfo["domain_name"]))
        pfile.write('\n')
    print "国家:".decode('utf-8'),str(dminfo["country"])
    pfile.write(str(dminfo["country"]))
    pfile.write('\n')
    print "公司:".decode('utf-8'),str(dminfo["org"])
    pfile.write(str(dminfo["org"]))
    pfile.write('\n')
    print "地址:".decode('utf-8'),str(dminfo["address"])
    pfile.write(str(dminfo["address"]))
    pfile.write('\n')
    #print "公司创建时间:",dminfo["creation_date"]
    if (isinstance(dminfo["creation_date"], list)):
        print "公司创建时间:".decode('utf-8'), str(dminfo["creation_date"][0])
        pfile.write(str(dminfo["creation_date"][0]))
        pfile.write('\n')
    else:
        print "公司创建时间:".decode('utf-8'), str(dminfo["creation_date"])
        pfile.write(str(dminfo["creation_date"]))
        pfile.write('\n')
    #print "电子邮箱:",dminfo["emails"]
    if (isinstance(dminfo["emails"], list)):
        for email in dminfo["emails"]:
            print "电子邮箱:".decode('utf-8'), email
            pfile.write(email)
            pfile.write('\n')
    else:
        print "电子邮箱:".decode('utf-8'), str(dminfo["emails"])
        pfile.write(str(dminfo["emails"]))
        pfile.write('\n')
    #print "最新更新时间:",dminfo["updated_date"]
    if (isinstance(dminfo["updated_date"], list)):
        print "最新更新时间:".decode('utf-8'), str(dminfo["updated_date"][0])
    else:
        print "最新更新时间:".decode('utf-8'), str(dminfo["updated_date"])
    #print "到期时间:",dminfo["expiration_date"]
    if (isinstance(dminfo["expiration_date"], list)):
        print "到期时间:".decode('utf-8'), str(dminfo["expiration_date"][0])
        pfile.write(str(dminfo["expiration_date"][0]))
        pfile.write('\n')
    else:
        print "到期时间:".decode('utf-8'), str(dminfo["expiration_date"])
        pfile.write(str(dminfo["expiration_date"]))
        pfile.write('\n')
    print "whois服务器:".decode('utf-8'),str(dminfo["whois_server"])
    pfile.write(str(dminfo["whois_server"]))
    pfile.write('\n')
    #print isinstance(dminfo["name_servers"],tuple)
    #print type(dminfo["name_servers"])
    if(isinstance(dminfo["name_servers"],list)):
        for dnsserver in dminfo["name_servers"]:
            print "dns 服务器:".decode('utf-8'),dnsserver
            pfile.write(dnsserver)
            pfile.write('\n')
    else:
        print "dns服务器:".decode('utf-8'),str(dminfo["name_servers"])

if __name__ == "__main__":
    #dm=raw_input("请输入一个域名:".decode('utf-8'))
    dmfile = open('data.txt')
    dm = []
    for line in dmfile.readlines():
        dm.append(line.strip('\n'))#去除换行符
    dmfile.close()
    pool = threadpool.ThreadPool(20)
    requests = threadpool.makeRequests(domain, dm)
    [pool.putRequest(req) for req in requests]
    pool.wait()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值