Libtraceroute — это кроссплатформенная библиотека трассировки для Rust, которая позволяет отображать возможные маршруты (пути) и измерять задержки передачи пакетов по сети Интернет-протокола (IP). Libtraceroute использует pnet, сетевую библиотеку низкого уровня, для отправки и захвата пакетов на уровне канала передачи данных, что позволяет ему работать без необходимости получения привилегий root в MacOS и Windows, но по-прежнему требует sudo в Linux.
Libtraceroute работает на канальном уровне со специально созданными пакетами, что предоставляет пользователю множество возможностей для настройки. Библиотека позволяет настроить следующие параметры:
Чтобы использовать libtraceroute в своем проекте, добавьте в Cargo.toml следующее:
[dependencies]
libtraceroute = "0.1.0"
ПРИМЕЧАНИЕ! Если вы используете Windows, следуйте этим инструкциям, чтобы pnet работал:
Окна
- Вы должны использовать версию Rust, которая использует набор инструментов MSVC.
- У вас должен быть установлен WinPcap или npcap (проверено с версией WinPcap 4.1.3) (при использовании npcap обязательно установите параметр «Установить Npcap в режиме, совместимом с WinPcap API»).
- Вы должны поместить
Packet.lib
из пакета разработчиков WinPcap в каталог с именемlib
в корне этого репозитория. Альтернативно вы можете использовать любое из мест, перечисленных в переменных среды%LIB%
/$Env:LIB
. Для 64-битной цепочки инструментов она находится вWpdPack/Lib/x64/Packet.lib
, для 32-битной цепочки инструментов — вWpdPack/Lib/Packet.lib
.
Источник: https://github.com/libpnet/libpnet/blob/master/README.md.