Frage zu gethostbyaddr

Code-Stücke können hier veröffentlicht werden.
Antworten
sebi
User
Beiträge: 2
Registriert: Donnerstag 4. August 2016, 13:17

Hi@all
..ich bräuchte eure hilfe, bin neu in python und will ein kleines nslookup script bauen.
aktuell sieht mein script so aus:

Code: Alles auswählen

#!/usr/bin/python
import socket

ip = open(r'C:\Users\jija2630\Desktop\drucker.txt', 'r')
for line in ip:
    dns = socket.gethostbyaddr(line)
    print(dns)
    #print(line)
    #print(socket.gethostbyaddr(line))
Das einlesen meines Dokuments klappt, print(line) gibt alle IPv4 Adressen aus die ich durch nslookup jagen will.
Bei gethostbyaddr sieht es leider schlechter aus, hier kommt folgender Fehler:
dns = socket.gethostbyaddr(line)
socket.herror: [Errno 11004] host not found
Was mach ich falsch, woran scheiterts bei mir?
-wäre super wenn Ihr Licht ins dunkel bringen könnt!

Beste Grüße
Zuletzt geändert von Anonymous am Donnerstag 4. August 2016, 13:32, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@sebi: Die Zeilen enthalten ein Zeilenendezeichen. Das müsstest Du entfernen bevor Du die Funktion damit aufrufst.

`ip` ist ein komischer Name für ein Dateiobjekt. Das wäre eher ein Name für eine IP.

Dateien die man öffnet, sollte man auch wieder schliessen. Am besten verwendet man in dem Zusammenhang die ``with``-Anweisung.
sebi
User
Beiträge: 2
Registriert: Donnerstag 4. August 2016, 13:17

Wie kann ich mein txt File dahin gehend anpassen, stehe gerade auf den Schlauch?
Dort stehen IP Adressen drinn und sind durch enter/return getrennt.

Danke für die info mit with!

Code: Alles auswählen

with open(r'..\drucker.txt', 'r') as f:
    for line in f:
        dns = socket.gethostbyaddr(line)
        print(dns)
f.close
BlackJack

@sebi: Schau Dir einfach mal an was für Operationen/Methoden auf Zeichenketten definiert sind. Dann findest Du auch die, mit denen man „whitespace“ entfernen kann.

Die letzte Zeile ist übrigens doppelt überflüssig. Erstens bewirkt sie nichts, weil Du die `close()`-Methode nicht aufrufst, und zweitens wäre ein weiteres schliessen sinnfrei, dafür sorgt ja schon das ``with`` im Zusammenhang mit dem Dateiobjekt.
Benutzeravatar
/me
User
Beiträge: 3552
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

sebi hat geschrieben:Wie kann ich mein txt File dahin gehend anpassen, stehe gerade auf den Schlauch?
Es geht nicht darum, die Datei anzupassen, sondern jeweils den gelesenen String in eine Form zu überführen die dann sinnvoll weiterverwendet werden kann. Es gibt sogar eine passende String-Methode, die explizit Whitespaces (wie Leerzeichen oder Zeilenumbrüche) zu Beginn und/oder Ende des Strings entfernt. Such mal durch, irgendwann solltest du es dir ohnehin anschauen.
Antworten