Мазмуну:

Pythonдогу Netcat: 6 кадам
Pythonдогу Netcat: 6 кадам

Video: Pythonдогу Netcat: 6 кадам

Video: Pythonдогу Netcat: 6 кадам
Video: Python! Tuples 2024, Июль
Anonim
Pythonдогу Netcat
Pythonдогу Netcat

Netcat деген эмне? Netcat үчүн колдонмо баракчасында мындай деп айтылат: "nc (же netcat) утилита TCP, UDP же UNIX-домендик розеткаларды камтыган күн астында дээрлик бардык нерселер үчүн колдонулат. Ал TCP байланыштарын ача алат, UDP пакеттерин жөнөтөт, каалагандай угат. TCP жана UDP порттору, порт сканерлөөсү жана IPv4 жана IPv6 менен иштөө. Telnetтен (1) айырмаланып, nc скрипттери жакшы жана ката билдирүүлөрүн стандарттык чыгарууга жөнөтүүнүн ордуна стандарттык катага жөнөтөт, telnet (1) кээ бирлери сыяктуу."

Негизи, netcat сизге TCP же UDP протоколун колдонуу менен башка серверлерге туташууга мүмкүндүк берет. TCP Transmission Control Protocol дегенди билдирет жана туташууга багытталган. UDP Universal Datagram протоколун билдирет жана туташуусу жок. TCP адатта интернет тиркемелери үчүн колдонулат, ал эми UDP медиа агымы же VPN үчүн колдонулат.

1 -кадам: Биз кантип баштайбыз?

Биз кантип баштайбыз?
Биз кантип баштайбыз?

Жогоруда netcat кантип аталат. Сиз аягында "баруучу" жана "порт" деп аталган эки аргумент бар экенин көрө аласыз. Көздөгөн жер биз туташкысы келген сервердин хост атын же IP дарегин билдирет, ал эми порт биз туташкысы келген сервердин портун билдирет.

2 -кадам: Баштайлы

Баштайлы
Баштайлы

Жогоруда кандайдыр бир баштапкы питон коду бар. Көрүнүп тургандай, биз программанын аргументтерин чыныгы утилита кандай иштесе, ошону иштетүүнү каалайбыз. Хосттун аты аткарылуучу файлдын аталышынан кийинки биринчи аргумент болот, ал эми порт командалык сапта аткарылуучу файлдын атынан кийинки экинчи аргумент болот.

3 -кадам: Байланыш түзүү

Байланыш түзүү
Байланыш түзүү

Келгиле, колдоно турган netcat функциясын түзөлү. Биз бул жерде негизинен кылып жаткан нерсе - бул розетканы түзүү жана берилген параметрлерди колдонуу менен серверге туташуу. Netcat буйругу үчүн, учурдагы параметрлер - бул биз туташууга аракет кылган сервердин хост аты жана порту. Розеткада "socket. AF_INET" жана "socket. SOCK_STREAM" параметрлери камтылган, анткени биз бул үйрөткүч үчүн TCP туташуусун орнотпойбуз.

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 -сап: биз жөн гана netcat функциябызды хосттун аты, порт жана жаңы түзүлгөн мазмун менен атайбыз (ал туура коддолгон)

50 -сап: эгерде биздин буфердин мазмунунда "Байланыш: Жабуу" (байланышты жабууну каалаарыбызды көрсөтсө) камтылган болсо, биз жөн эле циклден чыгабыз

6 -кадам: Жыйынтык

Бул окуу куралынын аягында сизде netcatтын минималдуу иштеши болушу керек. Мен муну колдонуучуга мындай функцияларды ишке ашыруу үчүн калтырам:

1. башка протоколдорду колдоо

2. ар дайым байланышты жаббоо үчүн кодду бекитүү

3. netcat буга чейин жүрүм -турумун өзгөртүшү керек болгон желектерди кошуу

Сунушталууда: