批量解析網域名稱為IP位址的python指令碼

2022-05-30 22:18:11 字數 1867 閱讀 9776

指令碼如下:

#!/usr/bin/env python

#coding:utf-8

import os,sys

from

socket import gethostbyname

domain= "

g:/pycharmproject/fullstack2/week1/domain.txt

"def main():

#domain.txt裡面儲存的是需要批量解析的網域名稱列表,一行乙個

with open(domain,'r

') as

f:

for line in

f.readlines():

try:

host = gethostbyname(line.strip('\n'

)) except exception

ase:

print e

else

: #result.txt裡面儲存的是批量解析後的結果,不用提前建立

with open(

'result.txt

','a+

') as

r: r.write(line.strip('\n

') + '')

r.write(host + '\n'

)if __name__ == '

__main__':

main()

這個指令碼不完善,因為ip和網域名稱繫結了,但是ip ping不通或者機器關機會出現如下錯誤

[errno 11001

] getaddrinfo failed

[errno

11001

] getaddrinfo failed

[errno

11001

] getaddrinfo failed

[errno

11001] getaddrinfo failed

而且無法確定哪個網域名稱沒有和ip繫結

完善指令碼:原創

#!/usr/bin/env python

#coding:utf-8

from

socket import gethostbyname

domain= "

g:/pycharmproject/fullstack2/week1/e.txt

"with open(domain,'r

') as

f:

for line in

f.readlines():

try:

host = gethostbyname(line.strip('\n'

)) #網域名稱反解析得到的ip

except exception

ase:

with open(

'error.txt

','a+

') as

err: #error.txt為沒有ip繫結的網域名稱

err.write(line.strip()+ '\n'

)

else

: with open(

'result.txt

','a+

') as

r: #result.txt裡面儲存的是批量解析後的結果

r.write(line.strip('\n

') + '

') #顯示有ip繫結的網域名稱,用空格隔開

r.write(host + '

\n')

參考:

網域名稱解析與IP位址的關係

1 網域名稱解析dns 2 網域名稱伺服器上執行著乙個資料庫系統 3 資料庫中儲存著網域名稱位址與ip位址。4 使用者主機需要把網域名稱位址轉化為ip位址時向網域名稱伺服器提出查詢請求 5 網域名稱伺服器根據使用者請求進行查詢並把結果返回給使用者主機。2 ip位址與網域名稱的對應關係 1 一對一 i...

網域名稱和ip位址的區別

我們也知道每一台計算機都有乙個唯一ip位址,特別難記,所以出現了今天的dns 網域名稱 連線的時候,dns會提供乙個ip位址,供伺服器去找尋 1.比如說 我們現在在 陝西省西安市大雁塔噴泉旁 那麼這個 陝西省西安市大雁塔噴泉旁 就是乙個網域名稱,而具體的這個唯一的地方 陝西省西安市大雁塔噴泉旁 就是...

IP位址 閘道器 網域名稱的簡裝理解

巨集觀上,全球13臺根伺服器,從a到m命名 類別起始ip 結束ip說明a 1.0.0.1 126.255.255.254 網路號1位,主機位3位 b128.0.0.1 191.255.255.254 網路號2位,主機位2位 c192.0.0.1 223.255.255.254 網路號3位,主機位1位...