Агуулгын хүснэгт:
- Алхам 1: Бид хэрхэн эхлэх вэ?
- Алхам 2: Эхлээд үзье
- Алхам 3: Холболт үүсгэх
- Алхам 4: Зарим контент илгээх
- Алхам 5: Нээлттэй холболт хийцгээе
- Алхам 6: Дүгнэлт
Видео: Python дахь Netcat: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Netcat гэж юу вэ? Netcat-ийн гарын авлагын хуудсанд дараах зүйлийг дурдсан болно: "nc (эсвэл netcat) хэрэгсэл нь TCP, UDP эсвэл UNIX-домэйны залгууртай нарны доорх бүх зүйлд ашиглагддаг. Энэ нь TCP холболтыг нээх, UDP пакет илгээх, дурын хэлбэрээр сонсох боломжтой. TCP ба UDP портууд, порт скан хийх, IPv4 ба IPv6 хоёуланг нь ажиллуулах. Telnet (1) -ээс ялгаатай нь nc скриптүүд нь сайн бөгөөд алдааны мэдэгдлийг стандарт гаралт руу илгээхийн оронд стандарт гаралт руу илгээдэг."
Үндсэндээ netcat нь TCP эсвэл UDP протоколыг ашиглан бусад серверүүдтэй холбогдох боломжийг олгодог. TCP нь дамжуулах хяналтын протокол гэсэн үг бөгөөд холболтод чиглэсэн байдаг. UDP нь Universal Datagram Protocol гэсэн үг бөгөөд холболтгүй байна. TCP нь интернет програмуудад ихэвчлэн хэрэглэгддэг бол UDP нь медиа дамжуулалт эсвэл VPN ашиглахад ашиглагддаг.
Алхам 1: Бид хэрхэн эхлэх вэ?
Дээр дурдсан зүйлийг netcat гэж нэрлэдэг. Төгсгөлд нь "очих газар" ба "порт" гэсэн хоёр аргумент байгааг харж болно. Очих газар нь бидний холбогдох гэж буй серверийн хостын нэр эсвэл IP хаягийг хэлдэг бол порт нь холбогдохыг оролдож буй серверийн портыг хэлдэг.
Алхам 2: Эхлээд үзье
Дээрх нь Python кодын эхлэл юм. Таны харж байгаагаар бид програмын аргументуудыг бодит хэрэгсэл хэрхэн ажилладагтай ижил аргаар боловсруулахыг хүсч байна. Хостын нэр нь гүйцэтгэгдэж буй файлын нэрний дараах эхний аргумент байх бол порт нь тушаалын мөрөнд гүйцэтгэгчийн нэрийн дараа орох хоёр дахь аргумент байх болно.
Алхам 3: Холболт үүсгэх
Ашиглах боломжтой netcat функцийг бий болгоё. Энд үндсэндээ бидний хийж байгаа зүйл бол сокет үүсгэж, өгөгдсөн параметрүүдийг ашиглан сервертэй холбогдох явдал юм. Netcat командын хувьд одоогийн параметрүүд нь бидний холбогдохыг оролдож буй серверийн хост нэр ба порт юм. Энэ зааварт бид TCP холболтыг анхдагч болгож байгаа тул сокет нь "socket. AF_INET" ба "socket. SOCK_STREAM" гэсэн параметрүүдийг агуулдаг.
Алхам 4: Зарим контент илгээх
Бид "контент" гэсэн гурав дахь параметрийг авахын тулд netcat функцийг өргөжүүлсэн. Энд маш их контент байгаа тул мөрийн дугаараар нь задалж үзье.
14-16-р мөр: бид бүх агуулгыг сокет дээр илгээж, жаахан хүлээгээд дараа нь ямар ч өгөгдөл гарахын тулд сокетийг хаадаг тул сокет цаашид ямар ч мэдээлэл ирэхгүй болохыг мэддэг.
18-26-р мөр: бид серверийн хариуг хадгалах буфер үүсгэж, сокет өгөгдлийг хүлээн авах үед унших өгөгдөл байгаа тохиолдолд үр дүнд 1024 байт хүртэлх өгөгдлийг хавсаргана.
28-29-р мөр: Бид энэ netcat холболтыг нэг удаагийн холболт хийхийг хүсч байгаа тул холболтыг хаалттай гэж мэдэгдээд дараа нь холболтыг хаадаг.
31 -р мөр: Энэ бол стандарт HTTP хүсэлт юм. Хэрэв та кодыг "google.com" ба "80" гэсэн тушаалын мөрийн аргументаар ажиллуулбал зохих HTTP хариултыг харах болно.
Алхам 5: Нээлттэй холболт хийцгээе
Дээрх код (өмнөх хэсгийн кодын доор байрладаг) нь хуурамч нээлттэй холболтоор дамжуулан олон тооны netcat командыг ажиллуулах боломжийг бидэнд олгодог. (Бодит байдал дээр, та командыг ажиллуулах болгондоо шинэ TCP холболтыг нээж, хаадаг тул энэ нь netcat -ийн зан төлөвийг үнэхээр дуурайдаггүй, бид үүнийг сургалтын зорилгоор л хийдэг). Үүнийг доороос нь дараалан задалж үзье.
31 -р мөр: "Интерактив байдлыг" хадгалахын тулд бид тушаалуудыг хязгааргүй уншихыг хүсч байна.
32 -р мөр: Энэ бол бидний хүсэлтийн агуулгыг хадгалах манай буфер юм
36-45-р мөр: Бид хоосон мөрийг унших хүртэл буфер дотор унших болно
48 -р мөр: бид зөвхөн сүлжээнийхээ функцийг хостын нэр, порт, шинээр үүсгэсэн контент (зөв кодчилсон) гэж нэрлэдэг.
50 -р мөр: Хэрэв манай буферын контент "Холболт: Хаах" гэсэн утгатай бол (холболтыг хаахыг хүсч байгаагаа илэрхийлнэ) бид зүгээр л тойргоос гардаг.
Алхам 6: Дүгнэлт
Энэ гарын авлагын төгсгөлд та хамгийн бага ажиллах netcat хэрэгжилттэй байх ёстой. Би хэрэглэгчид дараахь онцлог шинж чанаруудыг хэрэгжүүлэх дасгалыг үлдээх болно.
1. бусад протоколыг дэмжих
2. холболт бүрийг хаахгүй байх кодыг засах
3. netcat зан төлөвийг өөрчлөх ёстой тугуудыг нэмж оруулах
Зөвлөмж болгож буй:
MODBUS RTU дахь үйлдвэрлэлийн HMI ба Arduinos: 4 алхам
MODBUS RTU дахь Industrial HMI ба Arduinos: Энэхүү зааварчилгаанд би үйлдвэрлэлийн HMI (COOLMAY MT6070H, 150EUROS), Arduino CLONE DIY (10EUROS) ба Arduino UNO (10EUROS) хоорондын харилцааны жишээг тайлбарлах болно. Сүлжээ нь тусгай, хүчирхэг, үйлдвэрлэлийн протоколоор ажиллах болно
Python дахь Цезарь шифрийн хөтөлбөр: 4 алхам
Питон дахь Цезарь шифрийн програм: Цезарийн шифр бол эртний бөгөөд өргөн хэрэглэгддэг шифр бөгөөд шифрлэх, тайлахад хялбар байдаг. Энэ нь цагаан толгойн үсгийг сольж цоо шинэ цагаан толгой үүсгэх замаар ажилладаг (ABCDEF нь 4 үсгийг шилжүүлж, EFGHIJ болно). Цезарь С
Python дахь SHT25 бүхий Raspberry Pi ашиглан чийгшил ба температурын ажиглагч: 6 алхам
Python дахь Raspberry Pi -ийг SHT25 ашиглан чийгшил, температурын ажиглагч: Raspberry Pi -ийн сонирхогч тул бид үүнтэй хамт хэд хэдэн гайхалтай туршилтуудын талаар бодож үзсэн бөгөөд энэ кампанит ажилд бид харьцангуй чийгшил, температурыг хэмждэг чийгшил, температурын ажиглагч хийх болно. болон SHT25, Humidi
COVID-19-д зориулсан 20 дахь хоёр дахь гар угаах таймер: 6 алхам (зурагтай)
COVID-19-д зориулсан хоёр дахь гар угаах таймер: Дэлхий даяар COVID-19 тархах тусам бид нүүрээ бага багаар цуглуулж, гараа илүү олон удаа угааж өөрийгөө хамгаалах ёстой. гараа зөв угааж болохгүй. Гараа хэрхэн зөв угаах вэ? W
Python дахь BME280 -тай Raspberry Pi ашиглан цаг уурын станц: 6 алхам
Python дахь Raspberry Pi-ийг BME280 ашиглан ашигладаг цаг уурын станц: Цаг агаар бол сайн үлгэрлэгч юм. байгалийн гамшиг (ган гачиг, эрс тэс