テキストファイルでIPを見つけて、特定の形式の別のテキストファイルを生成します。

テキストファイルでIPを見つけて、特定の形式の別のテキストファイルを生成します。

テキストファイル(1行に1つのドメイン)からすべてのドメインを検索し、IPアドレス、スペース、ドメイン名、スペース、ドメイン名wwwが出力される別のテキストファイルを生成する方法が必要です。フロントエンドしてください。

たとえば、ソーステキストファイルに2行が含まれている場合:

1.gravatar.com
abcya.com

1.gravatar.comにIPv4アドレスとIPv6アドレスの両方があるため、新しいテキストファイルには3行が含まれています。

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を返します。その結果、IPアドレスファイルの代わりにNXDOMAINを使用することもできます。テキスト?

助けてくださる方によろしくお願いします。

ベストアンサー1

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

おすすめ記事