Code: Alles auswählen
#! /usr/bin/env python3
import os
def ping(ip):#Pingbefehl an System übergeben
NED = bool(os.system ("ping -c 1 -w 1 "+ ip))
return (NED)
def writetofile(data):#Datei öffnen oder wenn nicht vorhande erstellen
file = open ("pingtestlog.log" , "a")#und data in die Datei schreiben
file.write (str(data)+ "\n")
file.close()
return()
def testloop(ip,start,end):
ipanfang = ip[0:12]#ersten stellen einer IP adresse ermitteln
ipanfang = ipanfang.replace( "0", "" )#nullen wegstreichen
liste = [i for i in range (start , end+1)]
#print (liste)
for index in liste:
ip = ipanfang+str(index)#IP aus ipanfang und einem wert auf liste zusammensetzen
print (ip + " Wird getestet")
response = ping(ip)
if response != True:#Ergebniss auswerten
data = ip + " : reachable"
print (data)
writetofile(data)
else :
data = ip + " : not reachable"
print (data)
writetofile(data)
while(True):#Mainloop
start=int(1)
ip = str(input("Erste IP angeben (Es wird bis x.x.x.254 gescand) : "))
end = int(input("Bis zu welcher IP soll gescannt werden?: "))
testloop(ip,start,end)
2Tens funktioniert das ganze soweit ja ganz gut außer es kommt eine null in einer IP vor.
In Zeile 16 ersetze ich alle 0 in dem string durch "nichts". Nun ist es natürlich möglich das eine gewollte null in der IP wie z.B. 192.168.107.xxx vorkommt. Diese werden ja dann auch gestrichen und es hat nichts mehr mit dem ursprünglich gemeinten netzwerk zu tun.....
Wie könnte ich dieses Problem lösen?
Mir ist klar das einige Codezeilen in einer zusammen gefasst werden könnten. Aber dar ich zum Test immer wieder print ausgaben einfüge um best werte zu prüfen ist dies mommentan noch nicht sinnvoll.
mfg danny385