
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48

Mi az a netcat? A netcat kézikönyvének oldala a következőket mondja: "Az nc (vagy netcat) segédprogram szinte mindenre használható, ahol a nap alatt TCP, UDP vagy UNIX tartományú socketeket használnak. Megnyithatja a TCP kapcsolatokat, UDP csomagokat küldhet, tetszőleges módon hallgathatja TCP és UDP portok, portok szkennelése és IPv4 és IPv6 kezelése is. A telnettől (1) eltérően az nc szkriptjei rendben vannak, és a hibaüzeneteket szabványos hibára osztja fel, ahelyett, hogy szabványos kimenetre küldi őket, ahogy a telnet (1) néhány"
Lényegében a netcat lehetővé teszi, hogy TCP vagy UDP protokoll használatával csatlakozzon más szerverhez. A TCP jelentése Transmission Control Protocol, és kapcsolatorientált. Az UDP jelentése Universal Datagram Protocol, és kapcsolat nélküli. A TCP -t általában internetes alkalmazásokhoz használják, míg az UDP -t média streaminghez vagy VPN -hez.
1. lépés: Hogyan kezdjük?

Fent a netcat neve. Látható, hogy a végén két érv található: "cél" és "port". A rendeltetési hely annak a kiszolgálónak a gazdagépnevére vagy IP -címére vonatkozik, amelyhez csatlakozni próbálunk, míg a port annak a kiszolgálónak a portjára utal, amelyhez csatlakozni próbálunk.
2. lépés: Kezdjük

A fenti néhány kezdő python kód. Amint láthatja, a programhoz tartozó érveket a tényleges segédprogramhoz hasonlóan szeretnénk feldolgozni. A gazdagépnév lesz az első argumentum a végrehajtható fájl neve után, míg a port a második argumentum a végrehajtható fájl neve után a parancssorban.
3. lépés: Kapcsolat létrehozása

Hozzunk létre egy használható netcat függvényt. Itt alapvetően egy aljzatot hozunk létre, és a megadott paraméterek használatával csatlakozunk a szerverhez. A netcat parancs esetében az aktuális paraméterek a kiszolgáló gazdaneve és portja, amelyhez csatlakozni próbálunk. Az aljzat tartalmazza a "socket. AF_INET" és "socket. SOCK_STREAM" paramétereket, mert ebben az oktatóanyagban alapértelmezés szerint TCP -kapcsolatot használunk.
4. lépés: Küldjünk el néhány tartalmat

Bővítettük a netcat függvényünket egy harmadik paraméterre, a "content" -re. Rengeteg tartalom van itt, ezért bontsuk le sorszám szerint.
14-16. Sor: az összes tartalmat az aljzaton keresztül küldjük, várunk egy kicsit, majd bezárjuk a foglalatot a kimenő adatokhoz, így a foglalat tudja, hogy nincs több adat.
18-26. Sor: puffert hozunk létre a szerver válaszának tárolására, és amíg az aljzat adatokat fogad, legfeljebb 1024 bájt adatot fűzünk az eredményhez, amíg van olvasandó adat.
28-29. Sor: azt akarjuk, hogy ez a netcat kapcsolat egyszeri kapcsolat legyen, ezért a kapcsolatot lezártnak nyilvánítjuk, majd lezárjuk a kapcsolatot.
31. sor: Ez egy szabványos HTTP -kérés. Ha a kódot a "google.com" és a "80" parancssori argumentumokkal futtatja, akkor megfelelő HTTP -választ fog látni
5. lépés: Legyen nyílt kapcsolatunk

A fenti kód (amely az előző szakasz kódja alatt található) egyszerűen lehetővé teszi számunkra, hogy futtassunk többszörös netcat parancsokat pszeudo-nyílt kapcsolaton keresztül. (Valójában minden egyes parancs futtatásakor megnyílik, majd bezár egy új TCP kapcsolatot, tehát nem igazán emulálja a netcat viselkedését, ezt egyszerűen tanulási célból tesszük). Ezt is lebonthatjuk soronként:
31. sor: Korlátlan ideig szeretnénk olvasni a parancsokat az "interaktivitás" fenntartása érdekében
32. sor: Ez a pufferünk, amely tárolja kérésünk tartalmát
36-45. Sor: Addig olvasunk a pufferbe, amíg ki nem olvasunk egy üres sort
48. sor: egyszerűen meghívjuk a netcat függvényünket a gazdagépnévvel, a porttal és az újonnan létrehozott tartalommal (amely megfelelően kódolt)
50. sor: ha pufferünk tartalma valaha tartalmaz "Connection: Close" (jelezve, hogy le akarjuk zárni a kapcsolatot), egyszerűen kitörünk a körből
6. lépés: Következtetés
Ennek az oktatóanyagnak a végén egy minimálisan működő netcat implementációval kell rendelkeznie. Gyakorlatként a felhasználóra bízom az olyan funkciók megvalósítását, mint:
1. egyéb protokollok támogatása
2. rögzítse a kódot, hogy ne zárja le a kapcsolatot minden alkalommal
3. olyan zászlók hozzáadása, amelyeknek a netcat -nek már módosítania kell a viselkedést
Ajánlott:
QR -kód -szkenner az OpenCV használatával Pythonban: 7 lépés

QR-kód-szkenner az OpenCV használatával Pythonban: A mai világban azt látjuk, hogy a QR-kódot és a vonalkódot szinte mindenhol használják, a termékcsomagolástól az online fizetésig, és manapság már az étteremben is látjuk a QR-kódokat a menü megtekintéséhez. kétlem, hogy ez most a nagy gondolat. De szenvedtél már valaha
Caesar Cipher program Pythonban: 4 lépés

Caesar Cipher Program Pythonban: A Caesar Cipher egy ősi és széles körben használt rejtjelezés, amelyet könnyű titkosítani és visszafejteni. Úgy működik, hogy az ábécé betűit áthelyezi egy teljesen új ábécé létrehozásához (az ABCDEF 4 betű fölé tolódhat, és EFGHIJ lesz). Caesar C
Páratartalom és hőmérséklet megfigyelő Raspberry Pi használatával SHT25 -tel Pythonban: 6 lépés

Páratartalom és hőmérséklet megfigyelő a Raspberry Pi használatával az SHT25 -tel Pythonban: A Raspberry Pi rajongójaként néhány látványosabb kísérletet gondoltunk vele. Ebben a kampányban olyan páratartalom- és hőmérséklet -megfigyelőt készítünk, amely a relatív páratartalmat és hőmérsékletet méri a Raspberry Pi segítségével és SHT25, Humidi
Készíts egy igazán jó mátrixot a Pythonban !: 6 lépés

Készíts egy igazán jó mátrixot a Pythonban !: Sziasztok srácok! Ez az utasítás megtanítja, hogyan kell mátrixot készíteni a Pythonban! Általában az emberek mátrixot készítenek a Batch -ben, mert ez egyszerű. De ezúttal megmutatom, hogyan lehet mátrixot készíteni az egyik hatékony számítógépes nyelven
Színészlelés Pythonban OpenCV használatával: 8 lépés

Színészlelés Pythonban az OpenCV használatával: Üdv! Ez az utasítás arra szolgál, hogy útmutatást nyújtson, hogyan lehet kinyerni egy adott színt a képből a pythonban az openCV könyvtár használatával. Ha még nem ismeri ezt a technikát, ne aggódjon, az útmutató végén saját színét programozhatja