Libtraceroute é uma biblioteca traceroute multiplataforma para Rust, que permite exibir possíveis rotas (caminhos) e medir atrasos de trânsito de pacotes em uma rede de protocolo de Internet (IP). Libtraceroute usa pnet, uma biblioteca de rede de baixo nível, para enviar e capturar pacotes na camada de enlace de dados, o que permite operar sem a necessidade de privilégios de root no MacOS e Windows, mas ainda requer sudo no Linux.
Libtraceroute trabalha na camada de enlace de dados com pacotes customizados, o que fornece ao usuário muitas opções de customização. A biblioteca permite configurar os seguintes parâmetros:
Para usar libtraceroute em seu projeto, adicione o seguinte ao seu Cargo.toml:
[dependencies]
libtraceroute = "0.1.0"
OBSERVAÇÃO! Se você estiver usando o Windows, siga estas instruções para fazer o pnet funcionar:
Windows
- Você deve usar uma versão do Rust que use o conjunto de ferramentas MSVC
- Você deve ter o WinPcap ou o npcap instalado (testado com a versão WinPcap 4.1.3) (se estiver usando o npcap, certifique-se de instalar com o "Instalar o Npcap no modo compatível com a API do WinPcap")
- Você deve colocar
Packet.lib
do pacote WinPcap Developers em um diretório chamadolib
, na raiz deste repositório. Alternativamente, você pode usar qualquer um dos locais listados nas variáveis de ambiente%LIB%
/$Env:LIB
. Para o conjunto de ferramentas de 64 bits está emWpdPack/Lib/x64/Packet.lib
, para o conjunto de ferramentas de 32 bits está emWpdPack/Lib/Packet.lib
.
Fonte: https://github.com/libpnet/libpnet/blob/master/README.md