Sisällysluettelo:
- Vaihe 1: Miten aloitamme?
- Vaihe 2: Aloitetaan
- Vaihe 3: Yhteyden luominen
- Vaihe 4: Lähetetään sisältöä
- Vaihe 5: Luo avoin yhteys
- Vaihe 6: Johtopäätös
Video: Netcat Pythonissa: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Mikä on netcat? Netcatin käyttöoppaassa sanotaan seuraavaa: "nc (tai netcat) -apuohjelmaa käytetään melkein mihin tahansa auringon alla, johon liittyy TCP-, UDP- tai UNIX-verkkotunnuksen pistorasioita. Se voi avata TCP-yhteyksiä, lähettää UDP-paketteja, kuunnella mielivaltaisesti TCP- ja UDP -portit, skannaavat portit ja käsittelevät sekä IPv4- että IPv6 -protokollaa."
Pohjimmiltaan netcatin avulla voit muodostaa yhteyden muihin palvelimiin TCP- tai UDP -protokollan avulla. TCP tarkoittaa lähetyksen ohjausprotokollaa ja on yhteyskeskeinen. UDP tarkoittaa Universal Datagram Protocolia ja on yhteydetön. TCP: tä käytetään yleisesti Internet -sovelluksissa, kun taas UDP: tä käytetään median suoratoistoon tai VPN -verkkoihin.
Vaihe 1: Miten aloitamme?
Yllä on netcatin nimi. Näet, että lopussa on kaksi argumenttia nimeltä "määränpää" ja "portti". Kohde viittaa palvelimen isäntänimeen tai IP -osoitteeseen, johon yritämme muodostaa yhteyden, kun taas portti viittaa palvelimen porttiin, johon yritämme muodostaa yhteyden.
Vaihe 2: Aloitetaan
Yllä on alkuinen python -koodi. Kuten näette, haluamme käsitellä ohjelman argumentit samalla tavalla kuin varsinainen apuohjelma. Isäntänimi on ensimmäinen argumentti suoritettavan tiedoston nimen jälkeen, kun taas portti on toinen argumentti suoritettavan tiedoston nimen jälkeen komentorivillä.
Vaihe 3: Yhteyden luominen
Luodaan netcat -toiminto, jota voimme käyttää. Pohjimmiltaan teemme täällä pistorasian luomisen ja yhteyden muodostamisen palvelimeen annettujen parametrien avulla. Netcat -komennon nykyiset parametrit ovat palvelimen isäntänimi ja portti, johon yritämme muodostaa yhteyden. Pistorasia sisältää parametrit "socket. AF_INET" ja "socket. SOCK_STREAM", koska tässä opetusohjelmassa oletusarvoisesti käytetään TCP -yhteyttä.
Vaihe 4: Lähetetään sisältöä
Laajensimme netcat -toimintoamme ottamaan kolmannen parametrin, "content". Tässä on paljon sisältöä, joten jakakaamme se rivinumeron mukaan.
Rivi 14-16: lähetämme kaiken sisällön pistorasian yli, odotamme hetken ja suljemme sitten pistorasian kaikilta lähteviltä tiedoilta, jotta pistorasia tietää, ettei tietoja ole enää tulossa.
Rivi 18-26: luomme puskurin palvelimen vastauksen tallentamiseksi, ja kun pistorasia vastaanottaa dataa, liitämme tulokseen jopa 1024 tavua dataa niin kauan kuin on luettavaa.
Rivi 28-29: haluamme, että tämä netcat-yhteys on kertaluonteinen yhteys, joten julistamme yhteyden suljetuksi ja sitten suljemme yhteyden.
Rivi 31: Tämä on tavallinen HTTP -pyyntö. Jos suoritat koodin komentoriviargumenteilla "google.com" ja "80", näet oikean HTTP -vastauksen
Vaihe 5: Luo avoin yhteys
Yllä olevan koodin (joka sijaitsee edellisen osan koodin alla) avulla voimme yksinkertaisesti suorittaa useita netcat-komentoja pseudo-avoimen yhteyden yli. (Todellisuudessa joka kerta, kun suoritat komennon, se avaa ja sulkee uuden TCP -yhteyden, joten se ei todellakaan jäljittele netcatin käyttäytymistä, teemme tämän vain oppimistarkoituksiin). Jaetaan tämäkin rivi riviltä:
Rivi 31: Haluamme lukea komentoja loputtomasti "vuorovaikutteisuuden" ylläpitämiseksi
Rivi 32: Tämä on puskurimme, joka tallentaa pyyntömme sisällön
Rivi 36-45: Luemme puskuriin, kunnes luemme tyhjän rivin
Rivi 48: kutsumme yksinkertaisesti netcat -toimintoa isäntänimellä, portilla ja vasta luodulla sisällöllä (joka on koodattu oikein)
Rivi 50: jos puskurimme sisältö sisältää joskus "Yhteys: Sulje" (osoittaa, että haluamme sulkea yhteyden), me yksinkertaisesti poistumme silmukasta
Vaihe 6: Johtopäätös
Tämän opetusohjelman lopussa sinulla pitäisi olla minimaalinen toimiva netcat -toteutus. Jätän käyttäjän tehtäväksi toteuttaa seuraavat ominaisuudet:
1. muiden protokollien tukeminen
2. vahvista koodi, joka ei sulje yhteyttä joka kerta
3. lisäämällä lippuja, joiden netcatin on jo muutettava käyttäytymistä
Suositeltava:
QR -koodinlukija OpenCV: n avulla Pythonissa: 7 vaihetta
QR-koodinlukija OpenCV: n avulla Pythonissa: Nykymaailmassa näemme, että QR-koodia ja viivakoodia käytetään lähes kaikkialla tuotteen pakkaamisesta verkkomaksuihin, ja nykyään näemme QR-koodit jopa ravintolassa nähdäksemme valikon. epäile, että se on nyt iso ajatus. Mutta oletko koskaan kärsinyt
Caesar Cipher -ohjelma Pythonissa: 4 vaihetta
Caesar Cipher -ohjelma Pythonissa: Caesar Cipher on vanha ja laajalti käytetty salaus, joka on helppo salata ja purkaa. Se toimii siirtämällä aakkosten kirjaimia toisiinsa, jolloin luodaan kokonaan uusi aakkosto (ABCDEF voisi siirtää yli 4 kirjainta ja muuttua EFGHIJ: ksi). Caesar C
Kosteuden ja lämpötilan tarkkailija, joka käyttää Raspberry Pi: tä SHT25: n kanssa Pythonissa: 6 vaihetta
Kosteuden ja lämpötilan tarkkailija, joka käyttää Raspberry Pi: tä SHT25: n kanssa Pythonissa: Raspberry Pi: n harrastajana ajattelimme joitakin upeampia kokeita sen kanssa. Tässä kampanjassa teemme kosteuden ja lämpötilan tarkkailijan, joka mittaa suhteellista kosteutta ja lämpötilaa käyttäen Raspberry Pi ja SHT25, Humidi
Lämpötilan muutoksen kuvaaminen ilmastonmuutoksesta Pythonissa: 6 vaihetta
Lämpötilan muutoksen kuvaaminen ilmastonmuutoksesta Pythonissa: Ilmastonmuutos on suuri ongelma. Ja monet ihmiset eivät nyt tiedä kuinka paljon se on noussut. Tässä ohjeessa kuvaamme ilmastonmuutoksen aiheuttaman ilmaston lämpötilan muutoksen. Huijausarkille voit katsoa alla olevan python -tiedoston
Tee todella viileä matriisi Pythonissa!: 6 vaihetta
Tee todella viileä matriisi Pythonissa!: Hei kaverit! Tämä ohje opettaa sinulle kuinka tehdä matriisi Pythonissa! Yleensä ihmiset tekisivät matriisin erässä, koska se on helppoa. Mutta tällä kertaa näytän sinulle, kuinka tehdä matriisi jollakin tehokkaista tietokoneen kielistä