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