Преглед садржаја
Питхон Као програмски језик веома је моћан, омогућава нам да постижемо акције и постижемо веома важне резултате при манипулацији различитим карактеристикама наше опреме, што можемо постићи кроз ИП адресе, портови и утичнице. Сваки нам омогућава да дођемо до различите и једнако важне тачке унутар структуре мреже.Једно од окружења где Питхон је стекао већу снагу у развоју програма за мрежу, будући да захваљујући својим класама руковање утичницама, можемо користити мрежну структуру у своју корист, ова структура може бити локална или посредна Интернет, што нам даје велику свестраност и моћ у програмима које можемо изводити.
Библиотека утичницаОво је прва станица коју морамо направити, ова библиотека доноси функционалности засноване на лекције а у инстанце, што значи да неке ствари можемо користити без стварања објеката.
Ово за нас можда неће бити велика разлика, међутим могућност рада без инстанци отвара неке могућности, попут стварања краћих скрипти и омогућавања кориштења моћних алата без додавања додатне сложености коду.
Ова прва вежба је веома занимљива, јер ћемо са командне конзоле нашег система моћи да добијемо информације из сопствене опреме користећи Питхон и неколико редова кода.
ЗахтевиКао услов морамо имати инсталиран тумач Питхон у нашој машини да бисмо могли да извршимо примере које ћемо приказати у овом водичу.
Код који смо написали ради на верзија 2.7 оф Питхон па ће можда бити потребне неке измене ако се користи друга верзија. Алат који нам може помоћи при проблемима компатибилности верзија је Виртуаленв који нам омогућава покретање различитих верзија Питхон у независним инсталацијама без потребе за сложеним конфигурацијама.
Прво ћемо отворити нашу командну конзолу и ући ћемо у Питхон интерактивни терминалДа бисмо то урадили, ако смо правилно инсталирали језик, морамо само да поставимо реч питхон и ми ћемо јој имати приступ:
Ова конзола је веома корисна за упутства за тестирање, као што ћемо видети у доњем примеру, међутим за употребе у којима морамо да чувамо направљени код можда није најбоља алтернатива, као што ћемо видети касније у водичу.
Прво морамо увести нашу библиотеку, за то ћемо користити следећу команду:
импорт соцкет
Тада можемо почети са прикупљањем жељених података, за ово морамо само знати шта тражимо, на пример да бисмо добили име нашег тима, једноставно морамо написати следеће:
име_рачунара = соцкет.гетхостнаме ()
Затим можемо одштампати променљиву на екрану да бисмо видели њен садржај, за то једноставно зовемо методу принт:
принт "Назив рачунара је:% с"% назив_рачунара
Ово би требало да нам да резултат попут овог у нашем интерактивном терминалу:
Као што смо могли видети, прилично је лако управљати библиотеком утичница и операције са конзоле Питхон, сада можемо да пређемо на следећу тачку, а то је да одмах добијемо ИП адресу, јер морамо само да урадимо нешто слично, само што ћемо користити променљиву са именом рачунара који смо у почетку снимили и урадићемо следеће:
хост_аддресс = соцкет.гетхостбинаме (хост_наме)
Учинили смо ово, штампамо претходну променљиву:
исписати "ИП је:% с"% рачунарска_адреса
Да видимо како ово изгледа на нашем терминалу:
Као што видимо, без много напора смо добили изузетно корисне информације, али то није ништа у поређењу са оним што можемо учинити.
Горе наведено је прилично практично, али није од велике користи у његовој презентацији, јер му не можемо често приступити, али бисмо га морали унијети ред по ред, како бисмо избјегли овај проблем, створит ћемо прави програм који нам даје информације до сада знамо како да дођемо.
За ово ће нам требати обичан уређивач текста, препоручујемо СублимеТект 2 и локацију на којој можемо угостити наш програм, а то је надохват нашој инсталацији Питхон са одговарајућим дозволама.
Да бисмо постигли побољшање, креираћемо функцију која нам омогућава да редовно позивамо наша упутства без потребе да сваки пут пишемо сав код, а затим у нашу нову датотеку коју ћемо позвати теам_информатион.пи поставићемо следећи садржај:
#! / уср / бин / енв Питхон импорт соцкет деф гет цомпутер_инфо (): цомпутер_наме = соцкет.гетхостнаме () цомпутер_аддресс = соцкет.гетхостбинаме (назив_рачунара) принт "име рачунара је:% с"% цомпутер_наме принт "ИП је: % с "% адреса_рачунара ако је __наме__ == '__маин__': гет_теам_инфо ()
Веома је важно да поштујемо картице и увлачења кода јер је то једини начин на који Питхон може препознати измене блокова, ако их користимо Узвишени текст Нећемо морати да бринемо јер нам омогућава визуелну проверу удубљења нашег кода:
Сада у нашој системској командној конзоли и без уласка у де Питхон Можемо позвати нашу датотеку и видећемо резултат, за ово извршавамо питхон филенаме.пи као што видимо на следећој слици:
Пошто смо видели неке основе како библиотека функционише утичницаХајде да ово подигнемо на нови ниво. Без потребе за употребом нових упутстава, сада ћемо добити адресу удаљеног рачунара, што може бити веома важно за прикупљање информација за сваку валидацију коју желимо да извршимо.
У овом случају ћемо мало изменити наш претходни програм, у новој датотеци која се сада зове ремоте_информатион.пи поставићемо следеће:
#! / уср / бин / енв Питхон импорт соцкет деф гет_ремоте_цомпутер_инфо (): ремоте_цомпутер = 'ввв.гоогле.цом' три: принт "Удаљени рачунар је:% с"% ремоте_цомпутер принт "ИП адреса је:% с"% соцкет.гетхостбинаме (ремоте_хост) осим соцкет.еррор, ерр_мсг: принт "% с:% с"% (ремоте_хост, ерр_мсг) иф __наме__ == '__маин__': гет_ремоте_хост_инфо ()
Оно што смо урадили је једноставно навести име а удаљени хостКако немамо шта да докажемо, можемо да користимо познату веб страницу да бисмо од ње добили информације, у овом примеру ћемо користити адресу Гоогле, у овом случају име нашег тима ће бити Урл и користећи исту методу гетхостбинаме () добићемо информације.
Такође смо додали и алатку за обраду грешака у случају да одбијемо адресу коју смо поставили и тако знамо узроке, коначно ћемо ово извршити у нашој конзоли добити следеће:
Ако желимо да направимо програме који раде по мрежним протоколима, велика је вероватноћа да ћемо морати да користимо различите формате у којима се ИП адреса може изразити, све то наравно према погодностима које видимо.
Популарни форматиПостоје два веома популарна формата за ИП адресе, први је инет_атон () која је упакована верзија ИП -а и следећа је инет_нтоа () што је супротно и неупакована је верзија ИП-а.
Сваки од њих има своју употребу у програмима, међутим то није главна тема овог водича, једино што можемо назначити је да се ти формати и њихове функције примјењују само на ИПв4, уместо за ИПв6 примењују се други.
Направићемо нови програм који нам омогућава ову конверзију:
#! / уср / бин / енв Питхон импорт соцкет из бинасции импорт хеклифи деф формат_ип_аддресс (): ремоте_хост_а = соцкет.гетхостбинаме ('ввв.твиттер.цом') ремоте_хост_б = соцкет.гетхостбинаме ('ввв.фацебоок.цом') за дир_ип у [ремоте_хост_а, ремоте_хост_б]: пацкед_ип = соцкет.инет_атон (дир_ип) но_пацкед_ип = соцкет.инет_нтоа (пацкед_ип) принт "ИП адреса:% с => Упаковано:% с, Није упаковано:% с"% (дир_ип, хеклипифи (пацкед_ип )), унпацкед_ип) иф __наме__ == '__маин__': формат_ип_аддресс ()
Овде поново започињемо наш програм увозом библиотеке утичница, затим увозимо библиотеку тзв хеклифи то нам омогућава да успоставимо конверзију хексадецималних формата, тако да они могу бити читљиви, ми ћемо то користити за дешифровање ИП адреса. Да бисмо ово учинили занимљивијим, поставили смо два удаљена рачунара са којих ћемо добити ИП адресе и са фор лооп ми ћемо понављати кроз оба, унутар итерације је када тада можемо извршити конверзије са форматима адреса ИПв4 које смо добили.
На крају остављамо утисак о сваком од њих, зато смо се ослонили на методе инет_атон () и инет_нтоа () оба из соцкет библиотеке, што је важно запамтити да је заснована на класи, а не на инстанци.
Хајде да видимо како све ово изгледа када покренемо претходну датотеку у нашој командној конзоли:
Овим примером смо помешали све трикове које смо раније видели, од добијања информација са удаљеног рачунара, до изградње функције која нам омогућава да добијемо информације без потребе да све записујемо у интерактивну конзолу Питхон.
ВажноВажна препорука је да бисмо требали користити документацију када имамо питања и захваљујући великој заједници Питхон На интернету можемо практично пронаћи рјешење за сваку сумњу или проблем с којим се суочавамо.
Овим завршавамо овај водич, то је само увод у оно са чиме се програмира мрежа ПитхонМеђутим, врло је корисно знати да из наших програма можемо манипулирати информацијама и са наших рачунара и са удаљених рачунара, без потребе за додатним укључивањем из библиотека или више редова кода да бисмо их добили.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен