Данный проект был сделан в рамках учебного курса по языку Python.
Консольная утилита.
Запуск: перейти в директорию Traceroute и ввести в консоли sudo python3 traceroute.py host
Вывод: путь сетевого пакета до введенного пользователем хоста
Параметры можно посмотреть, введя sudo python3 main.py --help
- Утилита работает на Unix-подобных ОС (Linux, macOS) с правами суперпользователя
- Используется протокол ICMP
- Есть поддержка IPv4 и IPv6. По умолчанию используется IPv4, использование IPv6 можно указать при вызове
- Пользователь может задавать:
- -t или --timeout - максимальное время ожидания данных после установления соединения. Тип: float. По умолчанию: 1
- -m или -max_ttl - максимальное время жизни пакета. Тип: int. По умолчанию: 70
- -r или --request_count - количество отправляемых пакетов. Тип: int. По умолчанию: 3
- -p или --payload_size - размер дополнительных данных пакета (payload). Тип: int. По умолчанию: 16
- -i или --interval - интервал между запросами в секундах. Тип: float. По умолчанию: 0
- -v или --ip_version - версия IP (IPv4 или IPv6). Тип: int (4 или 6). По умолчанию: 4
- -d или --debug_mode - режим отладки, про каждый участок сети выводится информация, взятая из https://ip-api.com/. По умолчанию: False
- -s или --step_mode - пошаговый режим, новый пакет отправляется только после нажатия пользователем клавиши enter. По умолчанию: False
- Пользователь может отслеживать, какой по счёту сетевой пакет дошёл до цели. Пакеты, недошедшие до цели, отображаются звёздочкой (*)
- Пример запроса: sudo python3 traceroute.py -t=2 -m=30 --request_count=2 --payload_size=64 -i=1 -v=4 -ds example.com
- На консоль выводятся адреса промежуточных маршрутизаторов и время ответа отправленных пакетов