Чит лист за програмиране на мрежата на Python

Всички таблици, предоставени в мамят листове, също са представени в таблици по-долу, които са лесни за копиране и поставяне.

Най- Python Network Programming Cheat Sheet капаци:

  • Необходими общи инсталационни модули: PIP и IDLE
  • Водещи библиотеки за програмиране на мрежата на python
  • Мрежова криминалистика: Задължителни библиотеки и скриптове на python
  • Ключови думи на Python
  • Типове данни, математически оператори
  • Мрежов анализ с Python
  • Библиотеката на dnspython
  • Socket модул (интерфейс на Berkley API)
  • Видове гнезда, създаване на гнезда
  • Примери за гнездо
  • Примери за скриптове
  • Разбиращи модули

Преглед или изтегляне на Cheat Sheet JPG изображение

Щракнете с десния бутон върху изображението по-долу, за да запишете JPG файла (1987 ширина x 2362 височина в пиксели), или щракнете тук, за да го отворите в нов раздел на браузъра. След като изображението се отвори в нов прозорец, може да се наложи да щракнете върху изображението, за да го увеличите и да видите jpeg в пълен размер.

Преглед или изтегляне на PDF файла на мамяния

Изтеглете PDF файла на мамяния лист тук. Когато се отвори в нов раздел на браузъра, просто кликнете с десния бутон на мишката върху PDF и отворете менюто за изтегляне.

Какво е включено в този мамят лист

Следните категории и елементи са включени в мамят листа:

Необходими общи инсталационни модули: PIP и IDLE

PIP (инсталатор на пакет за Python)

$ sudo apt – вземете инсталирайте python-pip

IDLE (Интегрирана среда за развитие и обучение)

$ sudo apt – получите инсталиране на празен ход

Водещи библиотеки за програмиране на мрежата на python

Django

Уеб рамка на високо ниво Python за бързо развитие и прагматична

пикос (преди асинкоро)

Python рамка за асинхронно, едновременно, мрежово, разпределено програмиране и разпределени изчисления

дизел

Чист API за писане на мрежови клиенти и сървъри. TCP и UDP се поддържат. Пакети клиенти за HTTP, DNS, Redis, Riak и MongoDB.

Пулсар

Лесен начин за изграждане на мащабируеми мрежови програми

усукан

Създадена на събитията рамка за интернет приложения: HTTP клиенти и сървъри, SSHv2 и Telnet, IRC, XMPP, IMAPv4, POP3, SMTP, IMAPv4, POP3, SMTP и т.н..

NAPALM

Слой за абстракция на мрежата за автоматизация и програмируемост с поддръжка на мултивиндор – за работа с доставчици на устройства

gevent

Мрежова библиотека на Python, базирана на coroutine, която използва greenlet за осигуряване на синхронен API за високо ниво на връзката на събитието на libev или libuv

Целина

Асинхронна опашка задача / опашка за задачи въз основа на разпределено предаване на съобщение

Мрежова криминалистика: Задължителни библиотеки и скриптове на python

EDDIE инструмент

Системни и мрежови мониторинг, сигурност и анализ на ефективността на python

pypcap

Малък инструмент за улавяне на пакети, базиран на python и pcap

Paramiko

Внедряване на SSHv2 протокол, осигуряващ както клиентска, така и сървърна функционалност

пиукане

Инсталатор на пакет за python

Индексът на пакетите Python (PyPI)

Съхранение на софтуер за Python

Ключови думи на Python

>>> импортиране на ключова дума
>>> отпечатате (keyword.kwlist)

Python 2.7.15+ [‘и’, ‘като’, ‘твърдя’, ‘прекъсвам’, ‘клас’, ‘продължавам’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘с изключение на’, ‘exec’, ‘ накрая ‘,’ за ‘,’ от ‘,’ global ‘,’ if ‘,’ import “,” in “,” is “,” lambda “,” not “,” или “,” pass “,” print ” , ‘повишаване’, ‘връщане’, ‘опитване’, ‘докато’, ‘с’, ‘доходност]]

Python 3.8.0 [‘Грешно’, ‘Няма’, ‘Вярно’, ‘и’, ‘като’, ‘твърди’, ‘async’, ‘изчакайте’, ‘прекъснете’, ‘клас’, ‘продължете’, ‘def’, ‘ del ‘,’ elif ‘,’ else ‘,’ освен ‘,’ накрая ‘,’ for ‘,’ from ‘,’ global ‘,’ if ‘,’ import “,” in “,” is “,” lambda ” , ‘нелокални’, ‘не’, ‘или’, ‘преминаване’, ‘повишаване’, ‘връщане’, ‘опитайте’, ‘докато’, ‘с’, ‘доходност’]

Типове данни

Текст

str – x = "Здравей свят"

Цифрова

int, float, сложен

последователност

списък, кортеж, диапазон

картография

Dict

Комплект

комплект, замразен комплект

Булева

булев

двоен

байтове, байт-масив, преглед на паметта

Математически оператори

**

експонат 4 ** 2 = 16

%

Модул / Остатък 43% 5 = 3

//

Целочислено разделение 11 // 5 = 2

/

делене 11/5 = 2.2

*

умножение 3 * 3 = 9

изваждане 8 – 3 = 5

+

допълнение 2 + 2 = 4

==

Равна на

!=

Не е равно на

<

По-малко от

>

По-голям от

<=

По-малко или равно на

>=

По-голям или равен на

Коментари

#

Може да се използва в началото на ред или от вътре в края до края

Мрежов анализ с Python

Използвайте NMAP със скенер за порт

$ pip инсталирайте python-nmap

Команди за изпълнение на NMAP сканиране

импортиране на nmap
nmScan = nmap.PortScanner ()
nmScan.scan (’10 .1.0.0 ‘, ’25 -443’)

NMAP команди, използвани с python

nmScan.scaninfo () # {‘tcp’: {‘services’: ’25 -80′, ‘method’: ‘connect’}}
nmScan.all_hosts ()
nmScan [’10 .1.0.0 ‘]. хост ()
nmScan [’10 .1.0.0 ‘]. състояние ()
nmScan [’10 .1.0.0 ‘]. all_protocols ()
nmScan [’10 .1.0.0 ‘] [‘ tcp ‘]. клавиши () # Резултати – [80, 25, 22, 135]
nmScan [’10 .1.0.0 ‘]. has_tcp (25) # Резултат True / False
nmScan [’10 .1.0.0 ‘]. has_tcp (21) # Резултат е невярно / вярно

Библиотеката на dnspython

Инсталация

$ pip инсталирайте dnspython

Основна DNS заявка

импортиране на dns.resolver
name = ‘google.com’
за qtype в ‘A’, ‘AAAA’, ‘MX’, ‘NS’, ‘TXT’, ‘SOA’:
answer = dns.resolver.query (име, qtype, повишаване_on_no_answer = Грешно)
ако answer.rrset не е None:
отпечатате (answer.rrset)

Вземете предпочитание за MX цел и име

импортиране на dns.resolver

отговори = dns.resolver.query (‘dnspython.org’, ‘MX’)
за rdata в отговорите:
print („Хост“, rdata.exchange, „има предпочитания“, rdata.preference)

Socket модул (интерфейс на Berkley API)

Основни функции и методи

сокет () • ind () • слушам () • приемам () • свързвам () • свързвам_ex () • изпращам () • рев () • затварям ()

Видове гнезда

SOCK_STREAM

За TCP протоколи • Надеждно предаване • Пакетна последователност • Ориентирана към връзката • Двупосочна

SOCK_DGRAM

За UDP протоколи • Ненадеждно предаване • Без последователност от пакети • Без връзка (UDP) • Не е двупосочен

Създаване на гнезда

import socket # Импортира метода на socket
socket.socket () # Функция, която създава сокет
чорап = гнездо socket (фамилия сокети, тип сокет, протокол = стойност)

Socket Family

AF_UNIX или AF_INET

Тип гнездо

SOCK_STREAM или SOCK_DGRAM за TCP & UDP съответно

• напр. TCP – UDP2 = сокет. сокет (socket.AF_INET, socket.SOCK_DGRAM)

• напр. UDP – TCP2 = сокет. сокет (socket.AF_INET, socket.SOCK_STREAM)

Метод на клиентски гнездо

свързване ()

Метод на гнездото на сървъра

bind () • слушам (backlog) • accept ()

TCP сокет методи

s.recv () # Получаване на TCP пакети
s.send () # Изпрати TCP пакети

Методи на UDP сокет

s.recvfrom () # Получава UDP пакети
s.sendto () # Предава UDP пакети

Повече методи за гнездо

близо()

Затворете връзката на гнездото

gethostname ()

Връща низ, който включва името на хоста на текущия компютър

gethostbyname ()

Връща низ, който включва името на хоста и IP адреса на текущия компютър

слушам()

Настройте и стартирайте TCP слушател

свързване ()

Прикрепете (име на хост, номер на порт) към гнездото

приеме ()

TCP клиентска връзка изчакайте

свързване ()

Инициирайте TCP сървър връзка

TCP Socket Методи
mysocket.accept ()

Връща кортеж с отдалечения адрес, който е свързан

mysocket.bind (адрес)

Прикрепете посочения локален адрес към гнездото

mysocket.connect (адрес)

Данните, изпратени през сокета, се приписват на дадения отдалечен адрес

mysocket.getpeername ()

Връща отдалечения адрес, където е свързан гнездото

mysocket.getsockname ()

Връща адреса на локалната крайна точка на сокета

mysocket.sendto (данни, адрес)

Принудете пакет данни към конкретен отдалечен адрес

Блокиране на гнездото

setblocking (1)

Блок за настройка

setblocking (0)

Премахване / премахване на настройка на блок

Вземете номер на порт, използвайки име на домейн

сокет за импортиране
socket.getservbyname (‘име на домейн’)

Проверете поддръжката за IPV6

сокет за импортиране
socket.has_ipv6 # Отговорът е ИСТИНСКИ или ЛЪЖЕН

getaddrinfo () – Свързване на сървър към порт

от сокет импорт getaddrinfo
getaddrinfo (None, ‘FTP’, 0, socket.SOCK_STREAM, 0, socket.AI_PASSIVE)
[(2, 1, 6, ”, (‘0.0.0.0’, 21)), (10, 1, 6, ”, (‘::’, 21, 0, 0))]

Примери за гнездо

Пример от страна на клиента от гнездото

сокет за импортиране
S = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
гостоприемник = socket.gethostname ()
порт = 1111
myserver.bind ((хост, порт)) # замени myserver и myclient с повтарящи се IP
myserver.слушате (5)
докато вярно:
myclient,адр = myserver.accept ()
отпечатате ("Свързана е с {str (addr)}")
myclient.изпратите (msg.encode ("ASCII"))
myclient.близо()

Пример за клиент от страна на клиента с коментари

# импортиране библиотеката на сокета
сокет за импортиране

# създайте сокет обект
s = socket.socket ()
печат ("Сокет е създаден")

# резервирайте порт на компютъра, който може да бъде всичко
порт = 1111

# свържете към пристанището
# празен низ в полето IP вместо IP кара сървърът да слуша заявки
# идва от други компютри в мрежата
s.bind ((”, port))
печат ("гнездото, свързано към% s" % (Порт))

# превключете сокета в режим на слушане
s.listen (5)
печат ("сокет слуша")

# цикъл, докато потребителят го прекъсне или се появи грешка
докато вярно:

# Установете връзка с клиента.
c, addr = s.accept ()
print („Имам връзка от“, addr)

# изпрати благодарствено съобщение до клиента.
c.send („Благодаря ви за връзката“)

# Затворете връзката
c.close ()

Примери за скриптове

Създайте списък с устройства

>>>устройства = [‘SW1’, ‘SW2’, ‘SW3’]

Създайте списък с VLAN речници

vlans = [{‘id’: ‘100’, ‘name’: ‘staff’}, {‘id’: ‘200’, ‘name’: ‘VOICE’},
{‘id’: ‘300’, ‘name’: ‘wireless’}]

Напишете функции за събиране на команди и натискане към мрежата

>>>дефинирай get_commands (vlan, име):
команди = []
commandnds.append (‘vlan’ + vlan)
commandnds.append (‘име’ + име)

команди за връщане

>>> def push_commands (устройство, команди):
print („Свързване с устройство:„ + устройство)
за cmd в команди:
print (‘Команда за изпращане:’ + cmd)

Създайте VLAN в множество превключватели, използвайки скрипт python

>>>за vlan in vlans:
id = vlan.get (‘id’)
name = vlan.get (‘име’)
отпечатате ( “\ Н”)
печат („Конфигуриране на VLAN:„ + id)
command = get_commands (id, име)
за устройство в устройства:
push_commands (устройство, команди)
отпечатате ( “\ Н”)

Цитиране: https://www.oreilly.com/library/view/network-programmability-and/9781491931240/ch04.html

Деактивирайте интерфейса на рутера, използвайки команда python

>>> от push импортиране push_commands
устройство = ‘router2’
commandds = [‘интерфейс Eth0 / 1’, ‘изключване’]
push_commands (устройство, команди)

Разбиращи модули

argparse ()

Модулът argparse улеснява писането на удобни за потребителя интерфейси на командния ред. Програмата дефинира какви аргументи изисква и argparse ще разбере как да анализира тези от sys.argv

Създаване на анализатор

>>> parser = argparse.ArgumentParser (description = ‘Обработвайте някои цели числа.’)

Добавяне на аргументи

>>> parser.add_argument (‘цели числа’, metavar = ‘N’, type = int, nargs = ‘+’,
… help = ‘цяло число за акумулатора’)
>>> parser.add_argument (‘- сума’, dest = ‘натрупване’, action = ‘store_const’,
… const = сума, по подразбиране = max,
… help = ‘сумирайте цели числа (по подразбиране: намерете макс.)’)

Разбор на аргументи

>>> parser.parse_args ([‘- сума’, ‘7’, ‘-1′, ’42’])
Пространство от имена (натрупване =, цели числа = [7, -1, 42])

About the author

Comments

  1. Unfortunately, I cannot provide a comment in the appropriate language as the language used in the topic is not specified. Please provide more information so I can assist you better.

Comments are closed.