Все таблицы, представленные в шпаргалках, также представлены в таблицах ниже, которые легко скопировать и вставить.
Шпаргалка по сетевому программированию на Python крышки:
- Обязательные общие установочные модули: PIP и IDLE
- Лучшие библиотеки сетевого программирования Python
- Сетевая экспертиза: необходимые библиотеки и скрипты на python
- Ключевые слова Python
- Типы данных, математические операторы
- Анализ сети с помощью Python
- Библиотека dnspython
- Socket Module (интерфейс API Беркли)
- Типы сокетов, создание сокетов
- Примеры сокетов
- Примеры скриптов
- Модули разбора
Посмотреть или скачать Cheat Sheet JPG изображение
Щелкните правой кнопкой мыши на изображении ниже, чтобы сохранить файл JPG (1987 ширина x 2362 высота в пикселях), или нажмите здесь, чтобы открыть его в новой вкладке браузера. Как только изображение откроется в новом окне, вам может потребоваться нажать на изображение, чтобы увеличить его и просмотреть полноразмерный файл JPEG..
Просмотреть или скачать PDF-файл шпаргалки
Загрузите PDF-файл шпаргалки здесь. Когда он откроется в новой вкладке браузера, просто щелкните правой кнопкой мыши на PDF и перейдите в меню загрузки.
Что входит в этот шпаргалку
Следующие категории и предметы были включены в шпаргалку:
Обязательные общие установочные модули: PIP и IDLE
PIP (установщик пакетов Python) | $ sudo apt-get установить python-pip |
IDLE (интегрированная среда разработки и обучения) | $ sudo apt-get install idle |
Лучшие библиотеки сетевого программирования Python
Джанго | Веб-фреймворк Python высокого уровня для быстрой и прагматичной разработки |
Пикос (ранее Асинкоро) | Платформа Python для асинхронного, параллельного, сетевого, распределенного программирования и распределенных вычислений |
дизель | Чистый API для написания сетевых клиентов и серверов. TCP и UDP поддерживается. Пакеты клиентов для HTTP, DNS, Redis, Riak и MongoDB. |
пульсар | Простой способ создания масштабируемых сетевых программ |
скрученный | Основанная на событиях инфраструктура для интернет-приложений: клиенты и серверы HTTP, SSHv2 и Telnet, IRC, XMPP, IMAPv4, POP3, SMTP, IMAPv4, POP3, SMTP и т. Д.. |
NAPALM | Уровень абстракции сетевой автоматизации и программируемости с поддержкой нескольких поставщиков – для работы с поставщиками услуг |
GEvent | Сетевая библиотека на основе сопрограмм Python, которая использует greenlet для обеспечения высокоуровневого синхронного API поверх цикла событий libev или libuv |
Сельдерей | Асинхронная очередь задач / очередь заданий на основе распределенной передачи сообщений |
Сетевая экспертиза: необходимые библиотеки и скрипты на python
EDDIE Tool | Агент системного и сетевого мониторинга, безопасности и анализа производительности для python |
pypcap | Инструмент для захвата небольших пакетов на основе Python и PCAP |
Paramiko | Реализация протокола SSHv2, обеспечивающего функциональность как клиента, так и сервера |
зернышко | Установщик пакетов для python |
Индекс пакетов Python (PyPI) | Репозиторий программного обеспечения для Питона |
Ключевые слова Python
>>> ключевое слово импорта >>> печать (keyword.kwlist) |
Python 2.7.15+ [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘кроме’, ‘exec’, ‘ наконец, ‘,’ для ‘,’ из ‘,’ global ‘,’ if ‘,’ import ‘,’ in ‘,’ is ‘,’ lambda ‘,’ not ‘,’ или ‘,’ pass ‘,’ print ‘ , ‘Raise’, ‘Return’, ‘Try’, ‘while’, ‘with’, ‘yield’] |
Python 3.8.0 [‘False’, ‘None’, ‘True’, ‘и’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘ del ‘,’ elif ‘,’ else ‘,’ кроме ‘,’ finally ‘,’ for ‘,’ from ‘,’ global ‘,’ if ‘,’ import ‘,’ in ‘,’ is ‘,’ lambda ‘ , ‘нелокальный’, ‘not’, ‘или’, ‘pass’, ‘повысить’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’] |
Типы данных
Текст | ул – х = "Привет, мир" |
числовой | int, float, комплекс |
Последовательность | список, кортеж, диапазон |
картографирование | ДИКТ |
Устанавливать | набор, морозил |
логический | BOOL |
двоичный | байты, bytearray, просмотр памяти |
Математические операторы
** | экспонент 4 ** 2 = 16 |
% | Modulus / Остаток 43% 5 = 3 |
// | Целочисленное деление 11 // 5 = 2 |
/ | разделение 11/5 = 2,2 |
* | умножение 3 * 3 = 9 |
– | Вычитание 8 – 3 = 5 |
+ | прибавление 2 + 2 = 4 |
== | Равно |
!знак равно | Не равно |
< | Меньше, чем |
> | Больше чем |
<знак равно | Меньше или равно |
>знак равно | Больше или равно |
Комментарии
# | Может использоваться в начале строки или изнутри строки до конца строки |
Анализ сети с помощью Python
Используйте NMAP со сканером портов | $ pip install 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 ‘]. keys () # Результаты – [80, 25, 22, 135] nmScan [’10 .1.0.0 ‘]. has_tcp (25) # Результат True / False nmScan [’10 .1.0.0 ‘]. has_tcp (21) # Результат False / True |
Библиотека dnspython
Установка | $ pip install dnspython |
Основной DNS-запрос | импорт дн.резольвер name = ‘google.com’ для qtype в «A», «AAAA», «MX», «NS», «TXT», «SOA»: answer = dns.resolver.query (name, qtype, rise_on_no_answer = False) если answer.rrset не является None: печать (answer.rrset) |
Получить цель MX и имя предпочтения | импорт дн.резольвер answers = dns.resolver.query (‘dnspython.org’, ‘MX’) |
Socket Module (интерфейс API Беркли)
Основные функции и методы | socket () • ind () • listen () • accept () • connect () • connect_ex () • send () • recv () • close () |
Типы сокетов
SOCK_STREAM | Для протоколов TCP • Надежная передача • Последовательность пакетов • Ориентированный на соединение • Двунаправленный |
SOCK_DGRAM | Для протоколов UDP • Ненадежная передача • Нет последовательности пакетов • Без установления соединения (UDP) • Не двунаправленный |
Создание сокетов
import socket # Импортирует метод сокета socket.socket () # Функция, которая создает сокет | |
носок = сокет. сокет (семейство сокетов, тип сокета, протокол = значение) | |
Семья Сокетов | 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) |
Метод клиентского сокета | Connect () |
Метод сокета сервера | bind () • прослушать (отставание) • принять () |
Методы сокетов TCP | s.recv () # Получение пакетов TCP s.send () # Отправка TCP-пакетов |
Методы сокета UDP | s.recvfrom () # Получает пакеты UDP s.sendto () # Передает пакеты UDP |
Больше методов сокетов | |
близко() | Закройте разъем сокета |
gethostname () | Возвращает строку, которая включает имя хоста текущего ПК |
gethostbyname () | Возвращает строку, которая включает имя хоста и IP-адрес текущего ПК |
Слушать() | Настройка и запуск прослушивателя TCP |
связывания () | Присоедините (имя хоста, номер порта) к сокету |
принимаем () | Ожидание TCP-соединения с клиентом |
Connect () | Инициировать соединение с сервером TCP |
Методы сокетов TCP | |
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 (Нет, ‘FTP’, 0, сокет.SOCK_STREAM, 0, сокет.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 ((хост, порт)) # replace MyServer и мой клиент с покорными IP MyServer.слушать (5) пока верно: мой клиент,адр = myserver.accept () Распечатать("Подключено к {str (addr)}") мой клиент.отправить (msg.encode ("ASCII")) мой клиент.близко() |
Пример сокета на стороне клиента с комментариями |
# импортировать библиотеку сокетов гнездо для импорта # создать объект сокета # зарезервировать порт на компьютере, который может быть любым # привязка к порту # перевести сокет в режим прослушивания # цикл, пока пользователь не прервет его или не произойдет ошибка # Установить связь с клиентом. # отправить клиенту сообщение с благодарностью. # Закрыть соединение |
Примеры скриптов
Создать список устройств |
>>>устройства = [‘SW1’, ‘SW2’, ‘SW3’] |
Создать список словаря VLAN |
vlans = [{‘id’: ‘100’, ‘name’: ‘staff’}, {‘id’: ‘200’, ‘name’: ‘VOICE’}, {‘id’: ‘300’, ‘name’: ‘wireless’}] |
Написание функций для сбора команд и отправки в сеть |
>>>def get_commands (vlan, name): команды = [] command.append (‘vlan’ + vlan) command.append (‘имя’ + имя) команды возврата >>> def push_commands (устройство, команды): |
Создайте VLAN в нескольких коммутаторах, используя скрипт Python |
>>>для vlan во vlans: id = vlan.get (‘id’) name = vlan.get (‘name’) печать ( ‘\ п’) распечатать (‘Настроить VLAN:’ + id) command = get_commands (id, name) для устройства в устройствах: push_commands (устройство, команды) печать ( ‘\ п’) |
Цитирование: https://www.oreilly.com/library/view/network-programmability-and/9781491931240/ch04.html |
Отключить интерфейс маршрутизатора с помощью команды python |
>>> из push import push_commands устройство = ‘router2’ команды = [‘интерфейс Eth0 / 1’, ‘выключение’] push_commands (устройство, команды) |
Модули разбора
argparse () | Модуль argparse позволяет легко создавать удобные интерфейсы командной строки. Программа определяет, какие аргументы она требует, и argparse выяснит, как ее проанализировать из sys.argv. |
Создание парсера | >>> parser = argparse.ArgumentParser (description = ‘Обработать несколько целых чисел.’) |
Добавление аргументов | >>> parser.add_argument (‘целые числа’, metavar = ‘N’, тип = int, nargs = ‘+’, … help = ‘целое число для аккумулятора’) >>> parser.add_argument (‘- сумма’, dest = ‘накапливать’, action = ‘store_const’, … const = сумма, по умолчанию = макс, … help = ‘сумма целых чисел (по умолчанию: найти максимум)’) |
Разбор аргументов | >>> parser.parse_args ([‘- sum’, ‘7’, ‘-1′, ’42’]) Пространство имен (накапливать =, целые числа = [7, -1, 42]) |
This text is in Russian and talks about cheat sheets for network programming in Python. It lists the necessary installation modules, best libraries for network programming, network analysis, socket modules, socket types, and parsing modules. It also provides a JPG image and a PDF file of the cheat sheet. The cheat sheet includes categories such as mandatory installation modules, best libraries for network programming, network analysis, socket modules, socket types, and parsing modules. It also includes Python keywords.