簡體   English   中英

需要幫助來創建一個Python腳本,該腳本從txt文件中讀取主機名,對主機名執行ping操作,解析IP並將其打印到另一個文本文件

[英]Need help creating a Python script that reads hostnames from a txt file, pings the hostname, resolves the IP and prints it to another text file

就像標題所說的那樣,我需要指出正確的方向。 我不是在尋找“這是您的代碼”(我最近開始使用Python進行編碼,因此我的理解是非常基礎的)

但基本上,我將擁有一個充滿主機名的txt文件(每行一個),我需要對其進行ping操作以查看它們是否為1. Active和2。該活動主機名的IP地址是什么。 然后,我需要該程序將主機名+ IP輸出到txt文件。

我閱讀了一些有關該主題的內容,看來子過程是必經之路。 時間不是很重要,所以我不需要多線程。

因此,總而言之,有什么好的開始技巧(以便我可以理解自己在鍵入什么)嗎?

編輯:: 所以這是我走了多遠:

import ping, socket

hostsFile = open('hostnames.txt', 'r')
lines = hostsFile.readlines()
addr = socket.gethostbyname(lines)

for lines in hostsFile:
    print 'IP-address of', hostname
    print 'is', addr 
    try:
        ping.verbose_ping(count=3)
        delay = ping.Ping(timeout=2000).do()
    except socket.error, e:
        print "Ping Error:", e

現在,它返回一個錯誤,該錯誤引用了addr = socket.gethostbyname(lines)行,並說:“ TypeError:必須為字符串,而不是列表”

雖然我確實了解該錯誤,但我不知道如何解決該錯誤。

您可以使用python的ping和socket模塊來完成所需的任務。 套接字模塊具有一個函數gethostbyname() ,該函數采用主機名並返回其ip地址。

相關代碼如下所示,您可以在此代碼中實現讀取和寫入文本文件的功能。

import ping, socket
hostname = 'maps.google.com'
addr = socket.gethostbyname(hostname)
print 'The address of ', hostname, 'is', addr
try:
    ping.verbose_ping('www.google.com', count=3)
    delay = ping.Ping('www.wikipedia.org', timeout=2000).do()
except socket.error, e:
    print "Ping Error:", e

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM