Sadržaj:
- Korak 1: Kako počinjemo?
- Korak 2: Počnimo
- Korak 3: Stvaranje veze
- Korak 4: Omogućimo slanje određenog sadržaja
- Korak 5: Omogućimo otvorenu vezu
- Korak 6: Zaključak
Video: Netcat u Pythonu: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Šta je netcat? Stranica s priručnikom za netcat kaže sljedeće: "uslužni program nc (ili netcat) koristi se za gotovo sve pod suncem, uključujući TCP, UDP ili UNIX domene. Može otvoriti TCP veze, slati UDP pakete, slušati na proizvoljan način. TCP i UDP portovi, vrše skeniranje portova i bave se i IPv4 i IPv6. Za razliku od telneta (1), nc skripte lijepo odvajaju poruke o grešci na standardnu grešku umjesto slanja na standardni izlaz, kao što to čini telnet (1) s nekim"
U suštini, netcat vam omogućava povezivanje sa drugim serverima koristeći TCP ili UDP protokol. TCP je kratica za Transmission Control Protocol i orijentiran je na povezivanje. UDP je kratica za Universal Datagram Protocol i nema veze. TCP se obično koristi za internetske aplikacije, dok se UDP koristi za streaming medija ili VPN -ove.
Korak 1: Kako počinjemo?
Gore je kako se zove netcat. Možete vidjeti da na kraju postoje dva argumenta koji se zovu "odredište" i "port". Odredište se odnosi na naziv hosta ili ip adresu servera na koji se pokušavamo povezati, dok se port odnosi na port servera na koji se pokušavamo povezati.
Korak 2: Počnimo
Gore je neki početni python kod. Kao što vidite, želimo obraditi argumente programa slično kao i stvarni uslužni program. Ime hosta bit će prvi argument nakon imena izvršne datoteke, dok će port biti drugi argument nakon imena izvršne datoteke u naredbenoj liniji.
Korak 3: Stvaranje veze
Kreirajmo netcat funkciju koju možemo koristiti. Ono što ovdje u osnovi radimo je stvaranje utičnice i povezivanje sa poslužiteljem pomoću navedenih parametara. Za naredbu netcat trenutni parametri su ime hosta i port poslužitelja na koji se pokušavamo povezati. Utičnica sadrži parametre "socket. AF_INET" i "socket. SOCK_STREAM" jer smo prema zadanim postavkama TCP veze za ovaj vodič.
Korak 4: Omogućimo slanje određenog sadržaja
Proširili smo našu funkciju netcat tako da preuzme treći parametar, "sadržaj". Ovdje ima puno sadržaja pa ga raščlanimo po broju retka.
Red 14-16: šaljemo sav sadržaj preko utičnice, čekamo malo, a zatim zatvaramo utičnicu za sve odlazne podatke tako da utičnica zna da nema više podataka koji dolaze.
Red 18-26: stvaramo bafer za spremanje odgovora poslužitelja i dok utičnica prima podatke, rezultatu dodajemo do 1024 bajta podataka sve dok postoje podaci za čitanje.
Red 28-29: želimo da ova netcat veza bude jednokratna, pa proglašavamo vezu zatvorenom, a zatim vezu zatvaramo.
Linija 31: Ovo je standardni HTTP zahtjev. Ako pokrenete kôd s argumentima naredbenog retka "google.com" i "80", vidjet ćete odgovarajući HTTP odgovor
Korak 5: Omogućimo otvorenu vezu
Gornji kôd (koji se nalazi ispod koda iz prethodnog odjeljka) jednostavno nam dopušta da pokrenemo više naredbi netcat preko pseudootvorene veze. (U stvarnosti, svaki put kada pokrenete naredbu, ona otvara, a zatim zatvara novu TCP vezu, tako da ne oponaša uistinu ponašanje netcat -a, jednostavno to radimo u svrhe učenja). Hajde da raščlanimo i ovu liniju po red:
Red 31: Želimo čitati naredbe unedogled kako bismo održali "interaktivnost"
Red 32: Ovo je naš bafer koji će pohraniti sadržaj našeg zahtjeva
Red 36-45: Čitaćemo u baferu dok ne pročitamo prazan red
Red 48: jednostavno pozivamo našu funkciju netcat s imenom hosta, portom i novonastalim sadržajem (koji je pravilno kodiran)
Red 50: ako sadržaj našeg međuspremnika ikada sadrži "Connection: Close" (označavajući da želimo prekinuti vezu), jednostavno izlazimo iz petlje
Korak 6: Zaključak
Na kraju ovog vodiča trebali biste imati minimalnu radnu implementaciju netcat -a. Korisniku ću ostaviti kao vježbu implementaciju značajki kao što su:
1. podržavanje drugih protokola
2. popravljajući kôd da se veza ne zatvara svaki put
3. dodavanje zastavica koje netcat već mora promijeniti
Preporučuje se:
Skener QR koda pomoću OpenCV -a u Pythonu: 7 koraka
Skener QR koda pomoću OpenCV-a u Pythonu: U današnjem svijetu vidimo da se QR kod i bar kod koriste gotovo svugdje, od pakiranja proizvoda do plaćanja putem Interneta, a sada se svakodnevno vide QR kodovi čak i u restoranu da biste vidjeli jelovnik. sumnjam da je to sada velika misao. Ali jeste li se ikada zapitali
Cezarov program za šifriranje u Pythonu: 4 koraka
Program Caesar Cipher u Pythonu: Caesar Cipher je drevna i široko korištena šifra koja se lako šifrira i dešifrira. Radi tako što premješta slova abecede kako bi stvorio potpuno novu abecedu (ABCDEF bi mogao premjestiti preko 4 slova i postati EFGHIJ). Cezar C
Promatrač vlažnosti i temperature pomoću Raspberry Pi sa SHT25 u Pythonu: 6 koraka
Promatrač vlažnosti i temperature koji koristi Raspberry Pi sa SHT25 u Pythonu: Budući da smo bili entuzijasti za Raspberry Pi, mislili smo na još neke spektakularne eksperimente s njim. U ovoj kampanji ćemo napraviti promatrač vlažnosti i temperature koji mjeri relativnu vlažnost i temperaturu pomoću Raspberry Pi i SHT25, vlaga
MIDI komplet bubnjeva na Pythonu i Arduinu: 5 koraka (sa slikama)
MIDI komplet bubnjeva na Pythonu i Arduinu: Uvijek sam želio kupiti komplet bubnjeva od djetinjstva. Tada sva muzička oprema nije imala sve digitalne aplikacije kao što ih danas imamo u izobilju, pa su cijene zajedno s očekivanjima bile previsoke. Nedavno sam odlučio kupiti c
Grafikovanje promjene temperature zbog klimatskih promjena u Pythonu: 6 koraka
Grafikovanje promjene temperature zbog klimatskih promjena u Pythonu: Klimatske promjene su veliki problem. I mnogi ljudi sada ne znaju koliko je to poraslo. U ovom uputstvu ćemo grafički prikazati promjenu temperature u klimi uslijed klimatskih promjena. Za varalicu, ispod možete pogledati python datoteku