Sadržaj:
- Korak 1: Kako počinjemo?
- Korak 2: Počnimo
- Korak 3: Stvaranje veze
- Korak 4: Omogućimo slanje nekog 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 promjena: 2024-01-30 09:36
Što 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, skenirajte portove i bavite se i IPv4 i IPv6. Za razliku od telneta (1), nc skripte lijepo odvajaju poruke o pogreškama na standardnu pogrešku, umjesto da ih šalju na standardni izlaz, kao što to čini telnet (1) s nekim"
U biti, netcat vam omogućuje povezivanje s drugim poslužiteljima 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 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 poslužitelja na koji se pokušavamo povezati, dok se port odnosi na port poslužitelja 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. Naziv hosta bit će prvi argument nakon imena izvršne datoteke, dok će port biti drugi argument nakon imena izvršne datoteke u naredbenom retku.
Korak 3: Stvaranje veze
Izradimo 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 naziv 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 nekog 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.
Redak 14-16: šaljemo sav sadržaj preko utičnice, pričekamo malo, a zatim zatvaramo utičnicu za sve izlazne podatke kako bi utičnica znala da nema više podataka.
Redak 18-26: stvaramo međuspremnik za pohranu 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.
Redak 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 pseudo-otvorene veze. (U stvarnosti, svaki put kada pokrenete naredbu, ona otvara, a zatim zatvara novu TCP vezu, tako da uistinu ne oponaša ponašanje netcata, mi to jednostavno radimo u svrhu učenja). Razdvojimo i ovu liniju po red:
Redak 31: Želimo čitati naredbe unedogled kako bismo održali "interaktivnost"
Red 32: Ovo je naš međuspremnik koji će pohraniti sadržaj našeg zahtjeva
Redak 36-45: Čitat ćemo u međuspremniku sve dok ne pročitamo prazan redak
Red 48: jednostavno pozivamo našu funkciju netcat s imenom hosta, portom i novostvorenim sadržajem (koji je pravilno kodiran)
Redak 50: ako sadržaj našeg međuspremnika ikada sadrži "Veza: Zatvori" (što znači da želimo prekinuti vezu), jednostavno se prekidamo 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čeni:
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 kôd i crtični kôd koriste gotovo svugdje, od pakiranja proizvoda do mrežnog plaćanja, a sada se svakodnevno vide QR kodovi čak i u restoranu da biste vidjeli izbornik. Dakle, ne sumnja 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. Djeluje tako da premjesti slova abecede kako bi stvorio potpuno novu abecedu (ABCDEF bi mogao premjestiti preko 4 slova i postati EFGHIJ). Cezar C
Promatrač vlage i temperature pomoću Raspberry Pi s SHT25 u Pythonu: 6 koraka
Promatrač vlažnosti i temperature pomoću Raspberry Pi s SHT25 u Pythonu: Budući da smo entuzijasti za Raspberry Pi, sjetili smo se još spektakularnih eksperimenata s njim. U ovoj kampanji napravit ćemo 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 od malih nogu želio kupiti komplet bubnjeva. Tada sva glazbena oprema nije imala sve digitalne aplikacije kao što ih danas imamo dosta, stoga su cijene zajedno s očekivanjima bile previsoke. Nedavno sam odlučio kupiti c
Grafikovanje promjene temperature zbog klimatskih promjena u Pythonu: 6 koraka
Grafički prikaz promjene temperature zbog klimatskih promjena u Pythonu: Klimatske promjene veliki su 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 možete pogledati python datoteku u nastavku