1. 程式人生 > 程式設計 >python批量處理多DNS多域名的nslookup解析實現

python批量處理多DNS多域名的nslookup解析實現

利用EXCLE生成CSV文件,批量處理nslookup解析。並儲存為CSV文件,方便進行檢視:

輸入文件格式:

data\domain.csv

python批量處理多DNS多域名的nslookup解析實現

最終輸出文件情況:

data\nlookup.csv

python批量處理多DNS多域名的nslookup解析實現

程式碼:

# coding=gbk
import subprocess
import csv
 
 
def get_nslookup(domain,dns):
  res = subprocess.Popen("nslookup {0} {1}".format(domain,dns),stdin=subprocess.PIPE,stdout=subprocess.PIPE).communicate()[0]
  response = res.decode("gbk")
  res_list = response.split("s:")
  row_nslookup = [domain,dns]
  row_ip = res_list[2].split()[:-1]
  row_nslookup.extend(row_ip)
  return row_nslookup
 
 
if __name__ == "__main__":
  file_domain = r'data\domain.csv'    # 輸入檔案
  file_nslookup = r'data\nslookup.csv'  # 輸出檔案
  with open(file_domain,'r',newline='',encoding='gbk') as rf:
    domain_csv = csv.DictReader(rf,dialect=csv.excel)
    domain_list = [row['domain'] for row in domain_csv]
 
  with open(file_domain,dialect=csv.excel)
    dns_list = []
    for row in domain_csv:
      print(row['DNS'])
      if row['DNS'] != '':    # 通常DNS數量少於需要監測的域名數量,做去空處理
        dns_list.append(row['DNS'])
 
  with open(file_nslookup,'w+',encoding='gbk') as wf:
    nslookup_csv = csv.writer(wf,dialect=csv.excel)
    header = ['domain','DNS','nslookup_res...']
    nslookup_csv.writerow(header)
    for domain in domain_list:
      for dns in dns_list:
        print('解析中:域名:{0}___DNS:{1}'.format(domain,dns))
        row_nslookup = get_nslookup(domain,dns)
        nslookup_csv.writerow(row_nslookup)
 
print('執行完畢')

到此這篇關於python批量處理多DNS多域名的nslookup解析實現的文章就介紹到這了,更多相關python 批量多域名nslookup內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!