Alle in den Spickzettel enthaltenen Tabellen sind auch in den folgenden Tabellen aufgeführt, die sich leicht kopieren und einfügen lassen.
Das Cheat Sheet zur Python-Netzwerkprogrammierung deckt ab:
- Erforderliche allgemeine Installationsmodule: PIP und IDLE
- Top Python-Netzwerk-Programmierbibliotheken
- Netzwerkforensik: Erforderliche Python-Bibliotheken und -Skripte
- Python-Schlüsselwörter
- Datentypen, mathematische Operatoren
- Netzwerkanalyse mit Python
- Die dnspython Bibliothek
- Socket-Modul (Berkley API-Schnittstelle)
- Socket-Typen, Erstellen von Sockets
- Sockel-Beispiele
- Skript-Beispiele
- Analysieren von Modulen
Betrachte oder lade das Cheat Sheet JPG-Bild herunter
Klicken Sie mit der rechten Maustaste auf das Bild Klicken Sie unten, um die JPG-Datei zu speichern (1987 Breite x 2362 Höhe in Pixel), oder klicken Sie hier, um sie in einem neuen Browser-Tab zu öffnen. Sobald das Bild in einem neuen Fenster geöffnet wurde, müssen Sie möglicherweise auf das Bild klicken, um es zu vergrößern und das JPEG in voller Größe anzuzeigen.
Anzeigen oder Herunterladen der PDF-Datei des Spickzettel
Laden Sie hier das Spickzettel-PDF herunter. Wenn es in einem neuen Browser-Tab geöffnet wird, klicken Sie einfach mit der rechten Maustaste auf die PDF-Datei und navigieren Sie zum Download-Menü.
Was ist in diesem Spickzettel enthalten?
Die folgenden Kategorien und Gegenstände wurden in den Spickzettel aufgenommen:
Erforderliche allgemeine Installationsmodule: PIP und IDLE
PIP (Python Package Installer) | $ sudo apt-get installiere python-pip |
IDLE (Integrierte Entwicklungs- und Lernumgebung) | $ sudo apt-get install idle |
Top Python-Netzwerk-Programmierbibliotheken
Django | Hochrangiges Python-Web-Framework für schnelle und pragmatische Entwicklung |
Pycos (ehemals Asyncoro) | Python-Framework für asynchrone, gleichzeitige, netzwerkbasierte, verteilte Programmierung und verteiltes Computing |
Diesel | Eine saubere API zum Schreiben von Netzwerkclients und -servern. TCP und UDP unterstützt. Bündelt Clients für HTTP, DNS, Redis, Riak und MongoDB. |
Pulsar | Einfache Möglichkeit, skalierbare Netzwerkprogramme zu erstellen |
Verdrehte | Ereignisbasiertes Framework für Internetanwendungen: HTTP – Clients und – Server, SSHv2 und Telnet, IRC, XMPP, IMAPv4, POP3, SMTP, IMAPv4, POP3, SMTP usw. |
NAPALM | Network Automation und Programmability Abstraction Layer mit Multivendor-Unterstützung – Für den Umgang mit Geräteherstellern |
Ereignis | Eine auf Coroutinen basierende Python-Netzwerkbibliothek, die Greenlet verwendet, um eine übergeordnete synchrone API über der libev- oder libuv-Ereignisschleife bereitzustellen |
Sellerie | Asynchrone Taskwarteschlange / Jobwarteschlange basierend auf der verteilten Nachrichtenübergabe |
Netzwerkforensik: Erforderliche Python-Bibliotheken und -Skripte
EDDIE-Tool | System- und Netzwerküberwachungs-, Sicherheits- und Leistungsanalyseagent für Python |
Pypcap | Kleines Paketerfassungstool basierend auf Python und pcap |
Paramiko | Implementierung des SSHv2-Protokolls, das sowohl Client- als auch Serverfunktionen bietet |
Pip | Paketinstallationsprogramm für Python |
Der Python-Paketindex (PyPI) | Repository von Software für den Python |
Python-Schlüsselwörter
>>> Schlüsselwort importieren >>> drucken (keyword.kwlist) |
Python 2.7.15+ [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘ schließlich ‘,’ für ‘,’ von ‘,’ global ‘,’ wenn ‘,’ importieren ‘,’ in ‘,’ ist ‘,’ Lambda ‘,’ nicht ‘,’ oder ‘,’ bestanden ‘,’ drucken ‘ , ‘Raise’, ‘Return’, ‘Try’, ‘While’, ‘With’, ‘Yield’] |
Python 3.8.0 [‘False’, ‘None’, ‘True’ und ‘,’ as ‘,’ assert ‘,’ async ‘,’ await ‘,’ break ‘,’ class ‘,’ continue ‘,’ def ‘,’ del ‘,’ elif ‘,’ else ‘,’ except ‘,’ finally ‘,’ for ‘,’ from ‘,’ global ‘,’ if ‘,’ import ‘,’ in ‘,’ is ‘,’ lambda ‘ , ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’] |
Datentypen
Text | str – x = "Hallo Welt" |
Numerisch | int, float, komplex |
Reihenfolge | Liste, Tupel, Bereich |
Kartierung | diktieren |
einstellen | gesetzt, frozenset |
Boolean | Dummkopf |
Binär | Bytes, Bytearray, Memoryview |
Mathematikoperatoren
** | Exponent 4 ** 2 = 16 |
% | Modul / Rest 43% 5 = 3 |
// | Ganzzahlige Division 11 // 5 = 2 |
/ | Einteilung 11/5 = 2,2 |
* | Multiplikation 3 * 3 = 9 |
– | Subtraktion 8 – 3 = 5 |
+ | Zusatz 2 + 2 = 4 |
== | Gleicht |
!= | Nicht gleichzusetzen mit |
< | Weniger als |
> | Größer als |
<= | Weniger als oder gleich |
>= | Größer als oder gleich wie |
Bemerkungen
# | Kann am Anfang einer Zeile oder von einer Zeile bis zum Ende der Zeile verwendet werden |
Netzwerkanalyse mit Python
Verwenden Sie NMAP mit Port-Scanner | $ pip installiere python-nmap |
Befehle zum Ausführen des NMAP-Scans | nmap importieren nmScan = nmap.PortScanner () nmScan.scan (’10 .1.0.0 ‘, ’25 -443’) |
Mit Python verwendete NMAP-Befehle | nmScan.scaninfo () # {‘tcp’: {‘services’: ’25 -80 ‘,’ method ‘:’ connect ‘}} nmScan.all_hosts () nmScan [’10 .1.0.0 ‘]. hostname () nmScan [’10 .1.0.0 ‘]. state () nmScan [’10 .1.0.0 ‘]. all_protocols () nmScan [’10 .1.0.0 ‘] [‘ tcp ‘]. keys () # Ergebnisse – [80, 25, 22, 135] nmScan [’10 .1.0.0 ‘]. has_tcp (25) # Ergebnis Wahr / Falsch nmScan [’10 .1.0.0 ‘]. has_tcp (21) # Ergebnis False / True |
Die dnspython Bibliothek
Installation | $ pip installiere dnspython |
Grundlegende DNS-Abfrage | dns.resolver importieren name = ‘google.com’ für qtype in “A”, “AAAA”, “MX”, “NS”, “TXT”, “SOA”: answer = dns.resolver.query (name, qtype, raise_on_no_answer = False) Wenn answer.rrset nicht None ist: drucken (answer.rrset) |
Holen Sie sich MX-Ziel und Name Präferenz | dns.resolver importieren answers = dns.resolver.query (‘dnspython.org’, ‘MX’) |
Socket-Modul (Berkley API-Schnittstelle)
Primäre Funktionen und Methoden | Socket () • ind () • listen () • accept () • connect () • connect_ex () • send () • recv () • close () |
Sockeltypen
SOCK_STREAM | Für TCP-Protokolle • Zuverlässige Übertragung • Paketsequenz • Verbindungsorientiert • Bidirektional |
SOCK_DGRAM | Für UDP-Protokolle • Unzuverlässige Übertragung • Keine Paketfolge • Verbindungslos (UDP) • Nicht bidirektional |
Sockets erstellen
Socket importieren # Importiert die Socket-Methode socket.socket () # Funktion, die einen Socket erzeugt | |
Socke = Steckdose. Socket (Socket-Familie, Socket-Typ, Protokoll = Wert) | |
Sockelfamilie | AF_UNIX oder AF_INET |
Steckdosentyp | SOCK_STREAM oder SOCK_DGRAM für TCP & UDP jeweils • z.B. TCP – UDP2 = Socket. Socket (socket.AF_INET, socket.SOCK_DGRAM) • z.B. UDP – TCP2 = Socket. Socket (socket.AF_INET, socket.SOCK_STREAM) |
Client-Socket-Methode | verbinden() |
Server-Socket-Methode | bind () • listen (backlog) • accept () |
TCP-Socket-Methoden | s.recv () # TCP-Pakete empfangen an send () # TCP-Pakete senden |
UDP-Socket-Methoden | s.recvfrom () # Empfängt UDP-Pakete s.sendto () # Überträgt UDP-Pakete |
Weitere Socket-Methoden | |
schließen() | Schließen Sie die Socket-Verbindung |
gethostname () | Gibt eine Zeichenfolge zurück, die den Hostnamen des aktuellen PCs enthält |
gethostbyname () | Gibt eine Zeichenfolge zurück, die den Hostnamen und die IP-Adresse des aktuellen PCs enthält |
Hör mal zu() | Richten Sie den TCP-Listener ein und starten Sie ihn |
binden() | Schließen Sie (Hostname, Portnummer) an den Socket an |
akzeptieren() | TCP-Client-Verbindung warten |
verbinden() | Initiieren Sie die TCP-Serververbindung |
TCP-Socket-Methoden | |
mysocket.accept () | Gibt ein Tupel mit der verbundenen Remote-Adresse zurück |
mysocket.bind (Adresse) | Verbinden Sie die angegebene lokale Adresse mit dem Socket |
mysocket.connect (Adresse) | Über den Socket gesendete Daten werden der angegebenen Remote-Adresse zugewiesen |
mysocket.getpeername () | Gibt die entfernte Adresse zurück, an die der Socket angeschlossen ist |
mysocket.getsockname () | Gibt die Adresse des eigenen lokalen Endpunkts des Sockets zurück
|
mysocket.sendto (Daten, Adresse) | Erzwinge ein Datenpaket an eine bestimmte entfernte Adresse |
Socket-Blockierung | |
setblocking (1) | Einrichtungsblock |
setblocking (0) | Block entfernen / aufheben |
Ruft die Portnummer unter Verwendung des Domainnamens ab | Import-Socket socket.getservbyname (‘domain name’) |
Überprüfen Sie die Unterstützung für IPV6 | Import-Socket socket.has_ipv6 # Die Antwort ist TRUE oder FALSE |
getaddrinfo () – Bindet den Server an einen Port | von Socket-Import getaddrinfo getaddrinfo (Keine, ‘FTP’, 0, socket.SOCK_STREAM, 0, socket.AI_PASSIVE) [(2, 1, 6, ”, (‘0.0.0.0’, 21)), (10, 1, 6, ”, (‘::’, 21, 0, 0))] |
Sockel-Beispiele
Beispiel für einen clientseitigen Socket |
Import-Socket s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) host = socket.gethostname () port = 1111 Myserver.bind ((host, port)) # replace Myserver und mein Kunde mit repsctive IPs Myserver.hör zu (5) während wahr: mein Kunde,addr = myserver.accept () drucken("Verbunden mit {str (addr)}") mein Kunde.send (msg.encode ("ASCII")) mein Kunde.schließen() |
Beispiel für einen clientseitigen Socket mit Kommentaren |
# Importieren Sie die Socket-Bibliothek Import-Socket # ein Socket-Objekt erstellen # reserviere einen Port auf dem Computer, der alles sein kann # An den Port binden # Socket in den Listening-Modus versetzen # Schleife, bis der Benutzer ihn unterbricht oder ein Fehler auftritt # Verbindung zum Client herstellen. # Sende eine Dankesnachricht an den Kunden. # Trennen Sie die Verbindung |
Skript-Beispiele
Liste der Geräte erstellen |
>>>devices = [‘SW1’, ‘SW2’, ‘SW3’] |
Erstellen Sie eine VLAN-Wörterbuchliste |
vlans = [{‘id’: ‘100’, ‘name’: ‘staff’}, {‘id’: ‘200’, ‘name’: ‘VOICE’}, {‘id’: ‘300’, ‘name’: ‘wireless’}] |
Schreibe Funktionen zum Sammeln von Befehlen und zum Senden an das Netzwerk |
>>>def get_commands (vlan, name): commands = [] commands.append (‘vlan’ + vlan) commands.append (‘name’ + name) Befehle zurückgeben >>> def push_commands (Gerät, Befehle): |
Erstellen Sie VLANs in mehreren Switches mit Python-Skript |
>>>für vlan in vlans: id = vlan.get (‘id’) name = vlan.get (‘name’) Drucken (‘\ n’) print (‘Configure VLAN:’ + id) commands = get_commands (id, name) für Geräte in Geräten: push_commands (Gerät, Befehle) Drucken (‘\ n’) |
Zitat: https://www.oreilly.com/library/view/network-programmability-and/9781491931240/ch04.html |
Deaktivieren Sie die Router-Schnittstelle mit dem Befehl python |
>>> von push importieren Sie push_commands device = ‘router2’ commands = [‘interface Eth0 / 1’, ‘shutdown’] push_commands (Gerät, Befehle) |
Analysieren von Modulen
argparse () | Das argparse-Modul erleichtert das Schreiben benutzerfreundlicher Befehlszeilenschnittstellen. Das Programm definiert, welche Argumente erforderlich sind, und argparse ermittelt, wie diese aus sys.argv analysiert werden |
Parser erstellen | >>> parser = argparse.ArgumentParser (description = ‘Einige Ganzzahlen verarbeiten.’) |
Argumente hinzufügen | >>> parser.add_argument (‘Ganzzahlen’, metavar = ‘N’, type = int, nargs = ‘+’, … help = ‘eine ganze Zahl für den Akku’) >>> parser.add_argument (‘- sum’, dest = ‘accumulate’, action = ‘store_const’, … const = sum, default = max, … help = ‘Summe der ganzen Zahlen (Standard: finde das Maximum)’) |
Argumente analysieren | >>> parser.parse_args ([‘- sum’, ‘7’, ‘-1′, ’42’]) Namespace (akkumulieren =, ganze Zahlen = [7, -1, 42]) |
As an AI language model, I do not have a native language, but I can provide a translation of the text into German:
Alle in den Spickzettel enthaltenen Tabellen sind auch in den folgenden Tabellen aufgeführt, die sich leicht kopieren und einfügen lassen. Das Cheat Sheet zur Python-Netzwerkprogrammierung deckt ab: Erforderliche allgemeine Installationsmodule: PIP und IDLE Top Python-Netzwerk-Programmierbibliotheken Netzwerkforensik: Erforderliche Python-Bibliotheken und -Skripte Python-Schlüsselwörter Datentypen, mathematische Operatoren Netzwerkanalyse mit Python Die dnspython Bibliothek Socket-Modul (Berkley API-Schnittstelle) Socket-Typen, Erstellen von Sockets Sockel-Beispiele Skript-Beispiele Analysieren von Modulen
In diesem Text wird über ein Cheat Sheet zur Python-Netzwerkprogrammierung gesprochen, das verschiedene Themen abdeckt, wie zum Beispiel erforderliche Installationsmodule, Netzwerk-Programmierbibliotheken, Netzwerkforensik, Python-Schlüsselwörter, Datentypen, mathematische Operatoren, Netzwerkanalyse mit Python, die dnspython Bibliothek, das Socket-Modul und Sockel-Beispiele. Es wird auch erwähnt, dass alle in den Spickzettel enthaltenen Tabellen auch in den folgenden Tabellen aufgeführt sind, die sich leicht kopieren und einfügen lassen. Es gibt auch Links, um das Cheat Sheet als JPG-Bild oder PDF-Datei herunterzuladen.