Nslookup

從文本文件中查找 IP,生成另一個具有特定格式的文本文件

  • June 17, 2019

我想要一種在文本文件中查找所有域(每行一個域)並生成另一個文本文件的方法,其輸出為 IP 地址、空格、域名、空格,然後是域名全球資訊網。前置它。

例如,如果源文本文件包含兩行:

1.gravatar.com
abcya.com

新的文本文件將包含 3 行,因為 1.gravatar.com 同時具有 IPv4 和 IPv6 地址:

72.21.91.121 1.gravatar.com www.1.gravatar.com
2a04:fa87:fffe::c000:4902 1.gravatar.com www.1.gravatar.com
104.198.14.52 abcya.com www.abcya.com

我正在執行 Ubuntu 衍生產品,可以使用 nslookup 獲取 IPv4 和 IPv6 地址。但是,源文本文件是一個包含 2,000 多個域的列表 - 因此手動操作會花費很長時間,並且有很大的出錯空間。

如果答案也允許沒有 IP 地址。如果域不再存在(如 alwaysbeready.mybigcommerce.com 的情況),nslookup 將返回 ** server can’t find alwaysbeready.mybigcommerce.com: NXDOMAIN 因此,可能在結果文本中使用 NXDOMAIN 代替 IP 地址文件?

提前感謝任何可以提供幫助的人。

一個python解決方案

#!/usr/bin/python3

import socket 


#this module is core networking module in Python, 
#can be used to resolve domain names.

sourcefile = 'sourcefile.txt' #file with domain names
outfile = 'results.txt' #file to write the IP addresses

with open(sourcefile, 'r') as inputf: 
   #This opens the sourcefile in read mode to see what are the domains


   with open(outfile, 'a') as outputf: 
       #This opens the outfile in append mode to write the results


       domains = inputf.readlines() 
       #This reads all the domains in sourcefile line by line


       for domain in domains: 
           #This for loop will go one by one on domains.


           domain = domain.strip("\n") 
               #as the every domain in the file are in newline,
               #the socket function will have trouble, so strip off the newline char


           try:
               resolution = (socket.getaddrinfo(domain, port=80,type=2))
               for ip in resolution:
                   outputf.write(str(ip[4][0])+" "+domain+ " www."+domain+"\n" )
           except:
               outputf.write("Could not resolve "+domain+" www."+domain+"\n")
               #getaddinfo("domain") gets all the IP addresses. 

輸入 :

1.gravatar.com
abcya.com
allaboutbirds.org
google.com
akamai.de

輸出 :

192.0.73.2 1.gravatar.com www.1.gravatar.com
2a04:fa87:fffe::c000:4902 1.gravatar.com www.1.gravatar.com
104.198.14.52 abcya.com www.abcya.com
128.84.12.109 allaboutbirds.org www.allaboutbirds.org
216.58.197.78 google.com www.google.com
2404:6800:4007:810::200e google.com www.google.com
104.127.218.235 akamai.de www.akamai.de
2600:140b:a000:28e::35eb akamai.de www.akamai.de
2600:140b:a000:280::35eb akamai.de www.akamai.de

引用自:https://unix.stackexchange.com/questions/524792