Përmbajtje:

Netcat në Python: 6 hapa
Netcat në Python: 6 hapa

Video: Netcat në Python: 6 hapa

Video: Netcat në Python: 6 hapa
Video: Python for Automating Information Security: What Is Netcat? | packtpub.com 2024, Nëntor
Anonim
Netcat në Python
Netcat në Python

Çfarë është netcat? Faqja manuale për netcat thotë sa vijon: "Shërbimi nc (ose netcat) përdoret për pothuajse çdo gjë nën diell që përfshin priza TCP, UDP ose UNIX. Mund të hapë lidhje TCP, të dërgojë pako UDP, të dëgjojë në mënyrë arbitrare Portet TCP dhe UDP, bëjnë skanimin e portave dhe merren me të dy IPv4 dhe IPv6. Ndryshe nga telnet (1), skriptet nc, dhe i ndan mesazhet e gabimit në gabimin standard në vend që t'i dërgojë ato në dalje standarde, siç bën telnet (1) me disa"

Në thelb, netcat ju lejon të lidheni me serverë të tjerë duke përdorur protokollin TCP ose UDP. TCP qëndron për Protokollin e Kontrollit të Transmetimit dhe është i orientuar drejt lidhjes. UDP qëndron për Protokollin Universal të të Dhënave dhe është pa lidhje. TCP përdoret zakonisht për aplikacione në internet, ndërsa UDP përdoret për transmetimin e mediave ose VPN.

Hapi 1: Si Fillojmë?

Si Fillojmë?
Si Fillojmë?

Më sipër është sesi quhet netcat. Ju mund të shihni se ka dy argumente në fund të quajtur "destinacioni" dhe "port". Destinacioni i referohet një emri host ose adresa IP të serverit me të cilin po përpiqemi të lidhemi, ndërsa porti i referohet portës së serverit me të cilin po përpiqemi të lidhemi.

Hapi 2: Le të Fillojmë

Le të fillojmë
Le të fillojmë

Më sipër është një kod fillestar python. Siç mund ta shihni, ne duam të përpunojmë argumentet në program në mënyrë të ngjashme me atë se si funksionon shërbimi aktual. Emri i hostit do të jetë argumenti i parë pas emrit të ekzekutuesit, ndërsa porti do të jetë argumenti i dytë pas emrit të ekzekutuesit në rreshtin e komandës.

Hapi 3: Krijimi i një lidhjeje

Krijimi i një lidhjeje
Krijimi i një lidhjeje

Le të krijojmë një funksion netcat që mund të përdorim. Ajo që ne në thelb po bëjmë këtu është krijimi i një prize dhe lidhja me serverin duke përdorur parametrat e dhënë. Për komandën netcat, parametrat aktualë janë emri i hostit dhe porti i serverit me të cilin po përpiqemi të lidhemi. Foleja përmban parametrat "socket. AF_INET" dhe "socket. SOCK_STREAM" sepse ne jemi të parazgjedhur në një lidhje TCP për këtë udhëzues.

Hapi 4: Le të Dërgojmë Disa Përmbajtje

Le të Dërgojmë Disa Përmbajtje
Le të Dërgojmë Disa Përmbajtje

Ne e zgjeruam funksionin tonë të netcat për të marrë një parametër të tretë, "përmbajtjen". Ka shumë përmbajtje këtu, kështu që le ta zbërthejmë sipas numrit të rreshtit.

Linja 14-16: ne e dërgojmë të gjithë përmbajtjen mbi prizë, presim pak dhe pastaj e mbyllim folenë në të dhënat dalëse në mënyrë që priza të dijë se nuk ka më të dhëna.

Linja 18-26: ne krijojmë një tampon për të ruajtur përgjigjen e serverit, dhe ndërsa priza po merr të dhëna, ne i shtojmë rezultatit deri në 1024 bajt të dhëna për aq kohë sa ka të dhëna për të lexuar.

Linja 28-29: ne duam që kjo lidhje netcat të jetë një lidhje një herë, kështu që ne deklarojmë lidhjen e mbyllur dhe pastaj mbyllim lidhjen.

Linja 31: Kjo është një kërkesë standarde HTTP. Nëse e përdorni kodin me argumentet e vijës së komandës "google.com" dhe "80", atëherë do të shihni një përgjigje të duhur

Hapi 5: Le të kemi një lidhje të hapur

Le të kemi një lidhje të hapur
Le të kemi një lidhje të hapur

Kodi i mësipërm (i cili ndodhet nën kodin nga pjesa e mëparshme) thjesht na lejon të ekzekutojmë shumë komanda netcat mbi një lidhje pseudo-të hapur. (Në realitet, çdo herë që drejtoni një komandë, ajo hapet dhe më pas mbyll një lidhje të re TCP, kështu që nuk imiton vërtet sjelljen e netcat, ne thjesht po e bëjmë këtë për qëllime mësimi). Le ta thyejmë edhe këtë rresht pas rreshti:

Linja 31: Ne duam të lexojmë komandat pafundësisht në mënyrë që të ruajmë "ndërveprimin"

Linja 32: Ky është tamponi ynë që do të ruajë përmbajtjen e kërkesës sonë

Linja 36-45: Ne do të lexojmë në tampon derisa të lexojmë një rresht bosh

Linja 48: ne thjesht e quajmë funksionin tonë netcat me emrin e hostit, portin dhe përmbajtjen e krijuar rishtas (e cila është e koduar siç duhet)

Linja 50: nëse përmbajtja e tamponit tonë përmban ndonjëherë "Connection: Close" (duke treguar se duam të mbyllim lidhjen), ne thjesht dalim nga laku

Hapi 6: Përfundimi

Në fund të këtij tutoriali duhet të keni një zbatim minimal të punës së netcat. Unë do t'ia lë si një ushtrim përdoruesit për të zbatuar veçori të tilla si:

1. mbështetjen e protokolleve të tjera

2. rregullimi i kodit për të mos mbyllur lidhjen çdo herë

3. duke shtuar flamuj që netcat tashmë i ka për të modifikuar sjelljen

Recommended: