Python hálózati programozási cheat lap

Python hálózati programozási cheat lap

A csaló lapokban szereplő összes táblázatot az alábbi táblázatokban is bemutatjuk, amelyeket könnyű lemásolni és beilleszteni.

Az Python Network Programming Cheat Sheet burkolatok:

  • Szükséges közös telepítőmodulok: PIP és IDLE
  • A legjobb python hálózati programozási könyvtárak
  • Hálózati kriminalisztika: Szükséges python könyvtárak és szkriptek
  • Python Kulcsszavak
  • Adattípusok, matematikai operátorok
  • Hálózati elemzés Python segítségével
  • A dnspython könyvtár
  • Socket modul (Berkley API felület)
  • Aljzatok típusai, aljzatok létrehozása
  • Aljzatok példái
  • Példák forgatókönyvre
  • Modulok elemzése

Tekintse meg vagy töltse le a Cheat Sheet JPG képet

Kattintson a jobb gombbal a képre alább a JPG fájl mentéséhez (1987 szélesség x 2362 magasság pixelben), vagy kattintson ide, ha új böngésző lapon szeretné megnyitni. Miután a kép új ablakban nyílik meg, lehet, hogy rá kell kattintania a képre a nagyításhoz és a teljes méretű JPEG megtekintéséhez.

Python hálózati programozási cheat lap

Tekintse meg vagy töltse le a cheat sheet PDF fájlt

Töltse le a cheat sheet PDF fájlt itt. Amikor megnyílik egy új böngésző lapon, egyszerűen kattintson a jobb egérgombbal a PDF-re, és keresse meg a letöltés menüt.

Mit tartalmaz ez a csaló lap

A következő kategóriák és elemek kerültek be a cheat lapba:

Szükséges közös telepítőmodulok: PIP és IDLE

PIP (Python csomagtelepítő)

$ sudo apt-get install python-pip

IDLE (Integrált fejlesztési és tanulási környezet)

$ sudo apt-get install idle

A legjobb python hálózati programozási könyvtárak

Django

Magas szintű Python webes keret a gyors fejlesztéshez és gyakorlati megvalósításhoz

pycos (korábban asyncoro)

Python keret az aszinkron, egyidejű, hálózati, elosztott programozáshoz és az elosztott számításhoz

Dízel

Tiszta API hálózati kliensek és szerverek írására. A TCP és az UDP támogatott. Csomagolja az ügyfeleket a HTTP, a DNS, a Redis, a Riak és a MongoDB számára.

Pulzár

Könnyű módon méretezhető hálózati programokat készíteni

Csavart

Esemény-alapú keret az internetes alkalmazásokhoz: HTTP kliensek és szerverek, SSHv2 és Telnet, IRC, XMPP, IMAPv4, POP3, SMTP, IMAPv4, POP3, SMTP stb..

NAPALM

Hálózati automatizálás és programozhatóság absztrakciós réteg Multivendor támogatással - Eszközgyártókkal való kapcsolattartáshoz

gevent

A rendes alapú Python hálózati könyvtár, amely a greenlet használatával magas szintű szinkron API-t biztosít a libev vagy libuv esemény hurok tetején

Zeller

Aszinkron feladatsor / feladatsor az elosztott üzenet átadása alapján

Hálózati kriminalisztika: Szükséges python könyvtárak és szkriptek

EDDIE eszköz

Rendszer- és hálózati megfigyelő, biztonsági és teljesítményelemző ügynök a python számára

pypcap

Kis csomagrögzítő eszköz python és pcap alapon

Paramiko

Az SSHv2 protokoll megvalósítása, ügyfél és szerver funkciókat is biztosítva

csipog

Csomagtelepítő a pythonhoz

A Python csomag index (PyPI)

Szoftver lerakat a Python számára

Python Kulcsszavak

>>> import kulcsszó
>>> print (keyword.kwlist)

Python 2.7.15+ ['és', 'as', 'assert', 'break', 'class', 'folytatás', 'def', 'del', 'elif', 'else', 'kivéve', 'exec', ' végül ',' for ',' from ',' global ',' if ',' import ',' in ',' is ',' lambda ',' not ',' or ',' pass ',' print ' , 'emel', 'visszatér', 'próbál', 'míg', ',', 'hozam']

Python 3.8.0 ['Hamis', 'Nincs', 'Igaz', 'és', 'as', 'assert', 'async', 'várni', 'break', 'class', 'folytatni', 'def', ' del ',' elif ',' else ',' kivéve ',' végül ',' for ',' from ',' global ',' if ',' import ',' in ',' is ',' lambda ' , 'nem helyi', 'nem', 'vagy', 'átad', 'emel', 'visszatér', 'próbál', 'míg', 'with', 'hozam']

Adattípusok

Szöveg

str - x = "Helló Világ"

numerikus

int, úszó, komplex

Sorrend

lista, név, tartomány

térképészet

dict

Készlet

beállítva, frozenset

logikai

bool

kétkomponensű

byte, bytearray, memória nézet

Matematikai operátorok

**

exponent 4 ** 2 = 16

%

Modulus / Maradék 43% 5 = 3

//

Egész szám felosztás 11 // 5 = 2

/

Osztály 11/5 = 2,2

*

Szorzás 3 * 3 = 9

-

Kivonás 8 - 3 = 5

+

Kiegészítés 2 + 2 = 4

==

Egyenlő

!=

Nem egyenlő

<

Kevesebb, mint

>

Nagyobb, mint

<=

Kevesebb vagy egyenlő:

>=

Nagyobb vagy egyenlő:

Hozzászólások

#

Használható a vonal elején vagy a vonaltól a vonal végéig

Hálózati elemzés Python segítségével

Használjon NMAP-t a portolvasóval

$ pip install python-nmap

Az NMAP vizsgálat futtatásának parancsai

nmap importálása
nmScan = nmap.PortScanner ()
nmScan.scan ('10 .1.0.0 ', '25 - 443')

A pythonhoz használt NMAP parancsok

nmScan.scaninfo () # {'tcp': {'services': '25 -80 ',' method ':' connect '}}
nmScan.all_hosts ()
nmScan ['10 .1.0.0' ]. hostname ()
nmScan ['10 .1.0.0' ]. állapotban ()
nmScan ['10 .1.0.0' ]. all_protocols ()
nmScan ['10 .1.0.0 '] [' tcp ']. gombok () # Eredmények - [80, 25, 22, 135]
nmScan ['10 .1.0.0 ']. has_tcp (25) # Eredmény igaz / hamis
nmScan ['10 .1.0.0 ']. has_tcp (21) # Eredmény hamis / igaz

A dnspython könyvtár

Telepítés

$ pip install dnspython

Alapvető DNS-lekérdezés

import dns.resolver
name = 'google.com'
az „A”, „AAAA”, „MX”, „NS”, „TXT”, „SOA” típusú típus esetében:
answer = dns.resolver.query (név, qtype, raise_on_no_answer = False)
ha a answer.rrset értéke nincs Nincs:
print (answer.rrset)

Szerezze be az MX cél- és névpreferenciát

import dns.resolver

válaszok = dns.resolver.query ('dnspython.org', 'MX')
az rdata a válaszokban:
print ('Host', rdata.exchange, 'preferencia', rdata.preference)

Socket modul (Berkley API felület)

Elsődleges funkciók és módszerek

aljzat () • ind () • hallgatás () • elfogadás () • csatlakozás () • connect_ex () • küldés () • recv () • bezárás ()

Aljzatok típusai

SOCK_STREAM

TCP protokollokhoz • Megbízható átvitel • Csomag-sorrend • Csatlakozás-orientált • Kétirányú

SOCK_DGRAM

UDP protokollokhoz • Nem megbízható átvitel • Nincs csomag sorrend • Csatlakozás nélküli (UDP) • Nem kétirányú

Aljzatok létrehozása

import socket # Importálja a socket módszert
socket.socket () # Funkció, amely aljzatot hoz létre
zokni = aljzat. aljzat (aljzatcsalád, aljzat típusa, protokoll = érték)

Aljzat család

AF_UNIX vagy AF_INET

Aljzat típusa

SOCK_STREAM vagy SOCK_DGRAM a TCP számára & UDP

• például. TCP - UDP2 = foglalat. aljzat (socket.AF_INET, socket.SOCK_DGRAM)

• például. UDP - TCP2 = foglalat. aljzat (socket.AF_INET, socket.SOCK_STREAM)

Ügyfél socket módszer

connect ()

Szerver socket módszer

kötni () • figyelni (elmaradás) • elfogadni ()

TCP socket módszerek

s.recv () # TCP-csomagok fogadása
s.send () #Küldje el a TCP csomagokat

UDP socket módszerek

s.recvfrom () # UDP csomagokat fogad
s.sendto () # UDP csomagokat továbbít

Több aljzat-módszer

Bezárás()

Csukja be a csatlakozót

gethostname ()

Visszaad egy karakterláncot, amely tartalmazza az aktuális számítógép hostnevét

gethostbyname ()

Visszaad egy karakterláncot, amely tartalmazza az aktuális számítógép hostnevét és IP-címét

hallgat()

Telepítse és indítsa el a TCP figyelőt

bind ()

Csatlakoztassa (host-név, portszám) az aljzathoz

elfogad()

TCP kliens kapcsolat várjon

connect ()

Inicializálja a TCP szerver kapcsolatot

TCP Socket Methods
mysocket.accept ()

Visszaad egy csomagot a csatlakoztatott távoli címmel

mysocket.bind (cím)

Csatlakoztassa a megadott helyi címet az aljzathoz

mysocket.connect (cím)

A foglalaton keresztül küldött adatok hozzárendelésre kerülnek az adott távoli címhez

mysocket.getpeername ()

Visszaadja a távoli címet, ahol a foglalat csatlakozik

mysocket.getsockname ()

Visszaadja a socket saját helyi végpontjának címét

mysocket.sendto (adatok, cím)

Az adatcsomag kényszerítése egy adott távoli címre

Aljzat blokkolása

setblocking (1)

Beállítási blokk

setblocking (0)

Távolítsa el / távolítsa el a blokkot

Szerezze be a portszámot a domain név használatával

importcsatlakozó
socket.getservbyname ('domain name')

Ellenőrizze az IPV6 támogatását

importcsatlakozó
socket.has_ipv6 # A válasz igaz vagy hamis

getaddrinfo () - Kiszolgáló kötés egy porthoz

a socket importálásból getaddrinfo
getaddrinfo (Nincs, 'FTP', 0, socket.SOCK_STREAM, 0, socket.AI_PASSIVE)
[(2, 1, 6, '', ('0.0.0.0', 21)), (10, 1, 6, '', ('::', 21, 0, 0))]

Aljzatok példái

Példa az ügyféloldali aljzatra

importcsatlakozó
s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname ()
port = 1111
myserver.bind ((host, port)) # csere myserver és a kliensem ismétlődő IP-kkel
myserver.hallgatni (5)
míg igaz:
a kliensem,addr = myserver.accept ()
nyomtatás("Csatlakoztatva: {str (addr)}")
a kliensem.Levél (msg.encode ("ascii"))
a kliensem.Bezárás()

Ügyféloldali Socket példa megjegyzésekkel

# importálja a socket könyvtárat
importcsatlakozó

# socket objektum létrehozása
s = socket.socket ()
nyomtatás ("Aljzat létrehozva")

# fenntart egy portot a számítógépen, amely bármi lehet
port = 1111

# kötődik a porthoz
# üres karakterlánc az IP mezőben az IP helyett a kiszolgálót hallgatja a kérésekre
# a hálózat többi számítógépről érkezik
s.bind (('', port))
nyomtatás ("aljzat% s-hez kötve" %(kikötő))

# csatlakoztassa hallgató módba
s.listen (5)
nyomtatás ("aljzat hallgat")

# hurok, amíg a felhasználó nem szakítja meg azt, vagy hiba lép fel
míg igaz:

# Hozzon létre kapcsolatot az ügyféllel.
c, addr = s.accept ()
nyomtatás ('Kapcsolat létrejött', addr)

# köszönő üzenetet küld az ügyfélnek.
c.send ('Köszönöm a kapcsolatot')

# Zárja be a kapcsolatot
c.close ()

Példák forgatókönyvre

Készítse el az eszközök listáját

>>>eszközök = ['SW1', 'SW2', 'SW3']

Hozzon létre VLAN szótárlistát

vlans = [{'id': '100', 'név': 'alkalmazottak'}, {'id': '200', 'név': 'VOICE'},
{'id': '300', 'name': 'vezeték nélküli'}]

Írjon funkciókat a parancsok összegyűjtésére és a hálózatra való belépésre

>>>def get_commands (vlan, név):
parancsok = []
Command.append ('vlan' + vlan)
parancsok.append ('név' + név)

visszaadási parancsok

>>> def push_commands (eszköz, parancsok):
nyomtatás ('Csatlakozás eszközhöz:' + eszköz)
a cmd parancsokban:
print ('Küldési parancs:' + cmd)

Hozzon létre VLAN-kat több kapcsolóban python parancsfájl segítségével

>>>vlan in vlans esetén:
id = vlan.get ('id')
name = vlan.get ('név')
print ( '\ n')
print ('VLAN konfigurálása:' + azonosító)
parancsok = get_commands (azonosító, név)
eszközökön lévő eszközök esetében:
push_commands (eszköz, parancsok)
print ( '\ n')

Idézet: https://www.oreilly.com/library/view/network-programmability-and/9781491931240/ch04.html

Kapcsolja ki az útválasztó felületét a python paranccsal

>>> from push import push_commands
eszköz = 'router2'
parancsok = ['Eth0 / 1 interfész', 'leállítás']
push_commands (eszköz, parancsok)

Modulok elemzése

argparse ()

Az argparse modul megkönnyíti a felhasználóbarát parancssori felületek írását. A program meghatározza, hogy milyen argumentumokat igényel, és az argparse kitalálja, hogyan lehet ezeket elemezni a sys.argv fájlból

Elemző létrehozása

>>> parser = argparse.ArgumentParser (description = 'Néhány egész szám feldolgozása.')

Érvek hozzáadása

>>> parser.add_argument ('egész szám', metavar = 'N', type = int, nargs = '+',
... help = 'egész szám az akkumulátor számára')
>>> parser.add_argument ('- összeg', dest = 'felhalmozódik', action = 'store_const',
... const = összeg, alapértelmezés = max,
... help = 'számoljuk az egészeket (alapértelmezés: keressük meg a max értéket)')

Az érvek elemzése

>>> parser.parse_args (['- összeg', '7', '-1', '42'])
Névtér (felhalmozás =, egész szám = [7, -1, 42])
Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

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

− 4 = 5

Adblock
detector