多執行緒批量網域名稱資訊查詢

2021-08-08 23:04:01 字數 2849 閱讀 6861

寫了乙個多執行緒的批量網域名稱資訊查詢,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

pfile.write(str(dminfo["address"]))

pfile.write('\n')

if (isinstance(dminfo["creation_date"], list)):

print

pfile.write(str(dminfo["creation_date"][0]))

pfile.write('\n')

else:

print

pfile.write(str(dminfo["creation_date"]))

pfile.write('\n')

if (isinstance(dminfo["emails"], list)):

for email in dminfo["emails"]:

print

pfile.write(email)

pfile.write('\n')

else:

print

pfile.write(str(dminfo["emails"]))

pfile.write('\n')

if (isinstance(dminfo["updated_date"], list)):

print

else:

print

if (isinstance(dminfo["expiration_date"], list)):

print

pfile.write(str(dminfo["expiration_date"][0]))

pfile.write('\n')

else:

print

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():

dmfile.close()

pool = threadpool.threadpool(20)

requests = threadpool.makerequests(domain, dm)

[pool.putrequest(req) for req in requests]

pool.wait()

批量VS多執行緒

在實際的編碼過程中,總會遇到單一處理會有效能風險的問題,於是我們求助於批量或者多執行緒。一 批量處理 一般情況下批量處理就可以規避大部分效能風險的問題。將fetch 改為batchfetch 多數情況都比較簡單,尤其是呼叫其他應用的介面時,將單一介面,換成批量介面即可 而最終主要是修改資料從資料庫中...

網域名稱批量查詢工具實測

1.域霸 後起之秀,支援字典生成,可生成指定字母數字位數或混合生成網域名稱字典。不限同時查詢執行緒數,號稱速度在平均每小時五萬條,筆者家網速adsl,域霸顯示每秒10條左右,但在公司的光纖可以達到18到20條左右,這樣看來網速好的情況還是可以很輕鬆每小時到五萬的。whois資訊有些少,只有註冊商,註...

curl多執行緒批量請求

測試經常遇到檢視大資料量url請求是否正常。單執行緒跑的太慢 可以自定義執行緒數進行跑,細節不多說,其實我也是上網上湊的,拿下來修修改改能用即可。bin bash ttime date y m d h m s 允許的執行緒數 thread num 5 定義描述符為9的管道 mkfifo tmp ex...