Какие есть библиотеки для Python для сетевых проверок? Привет! Сделал скрипт, который с узла А проверяет сетевую доступность узла Б, отправляет результат в БД, а там уже выводится всё в графану. Реализованы проверки доступности портов через socket. Собственно вопрос : есть ли в python библиотеки, которые осуществляют проверку доступности по ICMP, проверку потери пакетов (Loss) и время передачи пакета (ms) ? Сейчас эти параметры проверяю через subprocess ping , просто парсинг вывода и код ответа для ICMP, но мне видится такая реализация костыльной, наверняка есть написанные инструменты для подобных проверок. В гугле не нашёл...
Да, существует библиотека scapy для Python, которая позволяет создавать и отправлять пользовательские сетевые пакеты, включая ICMP пакеты. С помощью этой библиотеки вы сможете реализовать проверку доступности по ICMP, проверку потерь пакетов и время передачи пакета.
Вот пример использования scapy для отправки ICMP пакетов и получения ответов:
from scapy.all import * import time def icmp_ping(host): pkt = IP(dst=host) / ICMP() start_time = time.time() reply = sr1(pkt, timeout=1) if reply: end_time = time.time() delay = (end_time - start_time) * 1000 print(f"{host} is reachable - Round trip time: {delay} ms") else: print(f"{host} is unreachable") icmp_ping('google.com')
Пожалуйста, убедитесь, что у вас установлена библиотека scapy перед использованием данного кода. Вы можете установить ее с помощью pip:
Да, существует библиотека scapy для Python, которая позволяет создавать и отправлять пользовательские сетевые пакеты, включая ICMP пакеты. С помощью этой библиотеки вы сможете реализовать проверку доступности по ICMP, проверку потерь пакетов и время передачи пакета.
Вот пример использования scapy для отправки ICMP пакетов и получения ответов:
from scapy.all import *import time
def icmp_ping(host):
pkt = IP(dst=host) / ICMP()
start_time = time.time()
reply = sr1(pkt, timeout=1)
if reply:
end_time = time.time()
delay = (end_time - start_time) * 1000
print(f"{host} is reachable - Round trip time: {delay} ms")
else:
print(f"{host} is unreachable")
icmp_ping('google.com')
Пожалуйста, убедитесь, что у вас установлена библиотека scapy перед использованием данного кода. Вы можете установить ее с помощью pip:
pip install scapy