Seite 1 von 1

Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 20:07
von 3000
Hi Leute, werde noch wahnsinnig. Suche seit Stunden auf eine Antwort. Vielleicht könnt ihr mir weiter helfen.

Wenn ich nslookup in cmd eingebe, erhalte ich folgende Ausgabe:

Code: Alles auswählen

Standardserver: Mein Servername.

[b]Adresse: 192.168.2.1[/b]
Wie krieg ich eine Print Ausgabe mit Python hin, in der eben NUR die DNS-Adresse ausgegeben wird.

Folgendes hab ich versucht, aber das öffnet nur nslookup.exe:

Code: Alles auswählen

import subprocess
print(subprocess.call('nslookup'))
Ausgabe sollte IN PYTHON IDLE aber so was wie das hier sein. Also ohne cmd.

Code: Alles auswählen

"192.168.2.1" 

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 20:55
von __blackjack__
@3000: Was genau versuchst Du da denn bitte zu machen? Wenn man nur ``nslookup`` ohne Argumente eingibt, dann landet man, zumindest bei Windows und Linux, im interaktiven Modus. Das kann es also eher nicht sein was Du da tatsächlich machst. Oder welches Betriebssystem und welches ``nslookup`` verwendest Du da?

Dann würde man aktuell eher `subprocess.run()` verwenden.

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 21:07
von Sirius3
Warum verwendest Du ein externes Programm, wenn Du auch Python-Funktionen verwenden könntest, wo Du dann die Ausgabe einfach formatieren kannst, wie Du möchtest:
Zum Beispiel:

Code: Alles auswählen

socket.getaddrinfo(socket.gethostname(), None)

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 22:30
von 3000
Danke. Ich nutzte Windows 10.

Habe eure Vorschläge probiert, aber ich bekomme immer noch nicht die DNS Ausgabe.

Scheint wohl schwieriger zu sein als gedacht.

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 22:37
von __blackjack__
@3000: Welche DNS-Ausgabe? Mir ist immer noch nicht klar was Du eigentlich machen/erreichen willst. Und ich meine nicht „nslookup“ ausführen, sondern was der Sinn davon sein soll – welche Information du haben möchtest.

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 22:44
von 3000
Ich hab ja nur deswegen nslookup geschrieben, weil ich damit in cmd die Info der DNS Adresse bekomme. Aber ich brauche sie eben in Python.

Mein Vorhaben: ich will meine aktuelle DNS Adresse als Variable in Python festhalten und abhängig davon, wie die Adresse lautet, will ich ein Script ausführen oder eben nicht.

Hoffe, das macht mein Anliegen verständlicher!

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 23:05
von __blackjack__
@3000: Nicht wirklich weil zumindest ich nicht weiss was Du mit „aktuelle DNS Adresse“ meinst. Das scheint ja eine IP-Adresse zu sein. Aber wovon? Von einer der Netzwerkschnittstellen Deines Rechners? Wenn ja, welche willst Du da haben? Oder die IP eines Nameservers den Dein System gerade benutzt?

An die IP(s) von Netzwerkschnittstellen kommt man beispielsweise mit dem `psutils`-Modul und die verwendeten Nameserver kann man mit dem dnspython-Package ermitteln. Beides plattformunabhängig.

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 23:09
von 3000
Ich kann mich nicht deutlicher ausdrücken. Falls jemand eine Idee hat einfach melden.

Danke!

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 23:24
von __blackjack__
@3000: Was ist denn das für eine IP die Du da im ersten Beitrag zeigst? Zu welchem Rechner gehört die? Zu Deinem Rechner auf dem Du das ausführst? Oder zum Router? Was genau entscheidest Du über diese Information und warum? Also was führt dazu das die sich ändert?

Edit: Und ansonsten wäre die Idee einfach mal `psutils` und dnspython anzuschauen. Vielleicht erst einmal `psutils` und was das so an Informationen über das Netzwerk ausspuckt. Wenn Deine IP dabei ist, dann weisst Du ja schon mal das Du `psutils` für Dein Vorhaben verwenden kannst.

Re: Lokale DNS auslesen

Verfasst: Freitag 16. August 2019, 23:38
von 3000
Gut, werde ich mir anschauen...