Informationen zur IP-Adresse erhalten Sie mit Python

Python als Programmiersprache ist sehr leistungsfähig. Es ermöglicht uns, Aktionen durchzuführen und sehr wichtige Ergebnisse zu erzielen, wenn wir die verschiedenen Eigenschaften unserer Geräte manipulieren. Dies können wir durch IP-Adressen, Ports und Sockets erreichen . Jedes ermöglicht es uns, einen anderen und ebenso wichtigen Punkt innerhalb der Netzwerkstruktur zu erreichen.

Eine der Umgebungen, in denen Python mehr Stärke erlangt hat, ist die Entwicklung von Programmen für das Netzwerk, da wir dank seiner Klassen für die Verwaltung von Sockets die Netzwerkstruktur zu unseren Gunsten verwenden können. Diese Struktur kann lokal oder über das Internet erfolgen Dies gibt uns eine große Vielseitigkeit und Kraft in den Programmen, die wir ausführen können.

Die Socket-Bibliothek
Dies ist der erste Schritt, den wir tun müssen. Diese Bibliothek enthält Funktionen, die auf Klassen und Instanzen basieren. Dies bedeutet, dass wir einige Dinge verwenden können, ohne Objekte zu erstellen.

Dies stellt vielleicht keinen großen Unterschied dar. Die Möglichkeit, ohne Instanzen zu arbeiten, eröffnet uns jedoch einige Möglichkeiten, z. B. kürzere Skripts zu erstellen und leistungsfähige Tools zu verwenden, ohne unseren Code zusätzlich zu komplexieren.

Erhalten Sie den Namen und die IP-Adresse unseres Teams

Diese erste Übung ist sehr interessant, da wir über die Kommandokonsole unseres Systems mit Python und einigen Codezeilen Informationen von unserem eigenen Team erhalten können.

Anforderungen
Voraussetzung ist, dass der Python- Interpreter auf unserem Computer installiert ist, um die in diesem Tutorial gezeigten Beispiele ausführen zu können.

Der von uns geschriebene Code wird in Version 2.7 von Python ausgeführt, sodass möglicherweise Änderungen vorgenommen werden müssen, wenn eine andere Version verwendet wird. Ein Tool, das uns bei Problemen mit der Versionskompatibilität helfen kann, ist Virtualenv , mit dem wir verschiedene Versionen von Python in unabhängigen Installationen ausführen können, ohne dafür komplexe Konfigurationen vornehmen zu müssen.

Zuerst öffnen wir unsere Kommandokonsole und betreten das interaktive Terminal von Python . Wenn wir die Sprache korrekt installiert haben, sollten wir nur das Wort Python platzieren und haben Zugriff darauf:

get-address-ip-python.jpg

Diese Konsole ist sehr nützlich, um Anweisungen zu testen, wie wir im folgenden Beispiel sehen werden. Für Anwendungen, bei denen der von uns ausgeführte Code beibehalten werden muss, ist dies möglicherweise nicht die beste Alternative, wie wir später im Tutorial sehen werden.

See also  Sicherheitsziele - Physischer Zugang (Teil 2)

Zuerst müssen wir unsere Bibliothek importieren, dazu verwenden wir den folgenden Befehl:

 Import-Socket 

Dann können wir anfangen, die gewünschten Informationen zu sammeln. Dazu sollten wir nur wissen, wonach wir suchen. Um beispielsweise den Namen unseres Teams zu erhalten, sollten wir einfach Folgendes schreiben:

 computer_name = socket.gethostname () 

Dann können wir die Variable auf dem Bildschirm ausdrucken, um ihren Inhalt zu sehen. Dazu rufen wir einfach die print- Methode auf:

 print "Der Computername lautet:% s"% Computername 

Dies sollte in unserem interaktiven Terminal zu folgenden Ergebnissen führen:

get-address-ip-python2.jpg

Wie wir sehen konnten, ist es recht einfach, die Socket- Bibliothek und die Operationen von der Python- Konsole aus zu verwalten. Jetzt können wir zum nächsten Punkt übergehen und die IP-Adresse einmal beziehen, da wir nur etwas Ähnliches tun müssen, nur dass wir die Variable verwenden werden mit dem Namen des Teams, das wir ursprünglich gefangen haben und wir werden Folgendes tun:

 equipment_address = socket.gethostbyname (computer_name) 

Sobald dies erledigt ist, drucken wir die vorherige Variable:

 print "Die IP lautet:% s"% equipment_address 

Mal sehen, wie das in unserem Terminal aussieht:

get-address-ip-python3.jpg

Wie wir sehen konnten, haben wir ohne großen Aufwand äußerst nützliche Informationen erhalten, aber dies ist nichts im Vergleich zu dem, was wir tun können.

Das Programm wiederholen

Das obige ist recht praktisch, aber es ist in seiner Darstellung nicht sehr nützlich, da wir nicht häufig darauf zugreifen können, sondern es Zeile für Zeile eingeben müssten, um dieses Problem zu vermeiden, werden wir ein echtes Programm erstellen, das uns die Informationen dazu gibt Bisher wissen wir, wie man es bekommt.

Dazu benötigen wir einen Nur- Text-Editor. Wir empfehlen SublimeText 2 und einen Speicherort, an dem wir unser Programm hosten können. Dies ist in Reichweite unserer Python- Installation mit den entsprechenden Berechtigungen.

Um eine Verbesserung zu erzielen, erstellen wir eine Funktion, mit der wir unsere Anweisungen wiederholt aufrufen können, ohne jedes Mal den gesamten Code schreiben zu müssen. In unserer neuen Datei rufen wir informacion_equipo.py auf und platzieren den folgenden Inhalt:

 #! / usr / bin / env Python Import-Socket def get_info_equipment (): computer_name = socket.gethostname () equipment_address = socket.gethostbyname (computer_name) print "Der Computername lautet:% s"% Computername print "Die IP lautet:% s"% equipment_address if __name__ == '__main__': get_info_equipment () 

Es ist sehr wichtig, dass wir die Tabellierungen und Einrückungen des Codes respektieren, da Python nur so Blockänderungen erkennen kann. Wenn wir Sublime Text verwenden, müssen wir uns keine Sorgen machen, da es uns ermöglicht, die Einrückungen unseres Codes visuell zu überprüfen :

See also  So entfernen Sie die Altersbeschränkung auf YouTube 2020

get-address-ip-python4.jpg

Jetzt können wir in unserer Kommandokonsole des Systems und ohne Eingabe der Python- Datei unsere Datei aufrufen und das Ergebnis sehen. Dazu führen wir die Datei python filename.py aus, wie wir in der folgenden Abbildung sehen können:

get-address-ip-python5.jpg

Beziehen Sie Informationen von einem Remotecomputer

Da wir einige Grundlagen zur Funktionsweise der Socket- Bibliothek kennengelernt haben, wollen wir diese auf eine neue Ebene heben. Ohne neue Anweisungen zu verwenden, erhalten wir jetzt die Adresse eines Remotecomputers. Dies kann sehr wichtig sein, um Informationen für eine Validierung zu sammeln, die wir durchführen möchten.

In diesem Fall werden wir unser vorheriges Programm etwas modifizieren. In einer neuen Datei mit dem Namen remote_info.py werden wir Folgendes einfügen :

 #! / usr / bin / env Python Import-Socket def get_info_equipo_remoto (): equipo_remoto = 'www.google.com' versuche: print "Der Remote-Computer ist:% s"% remote_computer print "Die IP-Adresse lautet:% s"% socket.gethostbyname (remote_computer) außer socket.error, err_msg: print "% s:% s"% (remote_computer, err_msg) if __name__ == '__main__': get_info_equipo_remoto () 

Wir haben lediglich den Namen eines Remote-Hosts angegeben , da wir nichts zu beweisen haben, dass wir über eine bekannte Website Informationen darüber erhalten können. In diesem Beispiel verwenden wir die Google- Adresse. In diesem Fall ist unser Teamname die URL und Mit der gleichen gethostbyname () -Methode erhalten wir die Informationen.

Wir haben auch einen Fehlerbehandler hinzugefügt, falls wir die von uns eingegebene Adresse ablehnen und somit die Ursachen kennen. Wenn wir dies in unserer Konsole ausführen, erhalten wir schließlich Folgendes:

get-address-ip-python6.jpg

Konvertieren Sie das Format IP-Adressen

Wenn wir Programme erstellen möchten, die unter Netzwerkprotokollen funktionieren, müssen wir höchstwahrscheinlich die verschiedenen Formate verwenden, in denen eine IP-Adresse ausgedrückt werden kann. Dies alles hängt vom Komfort ab, den wir sehen.

Beliebte Formate
Es gibt zwei sehr beliebte Formate für IP-Adressen: das erste ist inet_aton () , eine gepackte Version der IP, und das nächste ist inet_ntoa (), die das Gegenteil ist und eine entpackte Version der IP.

Jeder hat seine Verwendung in den Programmen, es ist jedoch nicht das Hauptthema dieses Tutorials. Wir können nur zusätzlich darauf hinweisen, dass diese Formate und ihre Funktionen nur für IPv4 gelten , während für IPv6 andere gelten.

See also  WiFi hat keine gültige Windows 10-Konfiguration

Wir werden ein neues Programm erstellen, mit dem wir diese Konvertierung durchführen können:

 #! / usr / bin / env Python Import-Socket aus binascii import hexlify def ip_address_format (): equipo_remoto_a = socket.gethostbyname ('www.twitter.com') equipo_remoto_b = socket.gethostbyname ('www.facebook.com') für dir_ip in [equipo_remoto_a, equipo_remoto_b]: packaged_ip = socket.inet_aton (ip_dir) not_packaged_ip = socket.inet_ntoa (packaged_ip) print "Adresse Ip:% s => Gepackt:% s, Nicht Gepackt:% s"% (dir_ip, hexlify (packaged_ip), not_packaged_ip) if __name__ == '__main__': ip_address_format () 

Hier starten wir unser Programm, das die Socket- Bibliothek importiert, und importieren dann eine Bibliothek namens hexlify , mit der wir eine Konvertierung von hexadezimalen Formaten vornehmen können, damit diese lesbar sind. Dies wird zur Entschlüsselung der IP-Adressen verwendet. Um dies interessanter zu gestalten, haben wir zwei entfernte Computer platziert, von denen wir die IP-Adressen erhalten und mit einem Zyklus für beide iterieren. Innerhalb der Iteration können wir dann die Konvertierungen mit den Formaten der IPv4- Adressen vornehmen, die wir haben erhalten.

Abschließend machen wir einen Eindruck von jedem einzelnen. Dazu haben wir uns auf die Methoden inet_aton () und inet_ntoa () der Socket-Bibliothek gestützt, was wichtig ist, um zu bedenken, dass sie auf Klassen und nicht auf Instanzen basiert.

Mal sehen, wie das alles aussieht, wenn wir die vorherige Datei in unserer Befehlskonsole ausführen:

get-address-ip-python7.jpg

In diesem Beispiel haben wir alle Tricks gemischt, die wir bisher gesehen haben, angefangen beim Abrufen von Informationen von einem Remotecomputer bis hin zum Erstellen einer Funktion, mit der wir Informationen abrufen können, ohne alles in die interaktive Python- Konsole schreiben zu müssen.

Wichtig
Eine wichtige Empfehlung ist, dass wir die Dokumentation verwenden sollten, wenn wir irgendwelche Zweifel haben, und dank der großen Python- Community im Internet können wir alle Zweifel oder Probleme, denen wir gegenüberstehen, praktisch lösen.

Damit beenden wir dieses Tutorial. Es ist nur ein Einstieg in die Programmierung von Netzwerken mit Python . Es ist jedoch sehr nützlich zu wissen, dass wir mit unseren Programmen Informationen sowohl von unseren Geräten als auch von entfernten Geräten bearbeiten können, ohne dass dies erforderlich ist müssen zusätzliche Einschlüsse von Bibliotheken oder mehreren Codezeilen machen, um es zu erhalten.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *