Libtraceroute est une bibliothèque traceroute multiplateforme pour Rust, qui permet d'afficher les itinéraires possibles (chemins) et de mesurer les délais de transit des paquets sur un réseau IP (Internet Protocol). Libtraceroute utilise pnet, une bibliothèque réseau de bas niveau, pour envoyer et capturer des paquets au niveau de la couche liaison de données, ce qui lui permet de fonctionner sans avoir besoin des privilèges root sur MacOS et Windows, mais nécessite toujours sudo sous Linux.
Libtraceroute fonctionne au niveau de la couche liaison de données avec des paquets personnalisés, ce qui offre à l'utilisateur de nombreuses options de personnalisation. La bibliothèque permet de configurer les paramètres suivants :
Pour utiliser libtraceroute dans votre projet, ajoutez ce qui suit à votre Cargo.toml :
[dependencies]
libtraceroute = "0.1.0"
NOTE! Si vous utilisez Windows, suivez ces instructions pour faire fonctionner pnet :
Fenêtres
- Vous devez utiliser une version de Rust qui utilise la chaîne d'outils MSVC
- Vous devez avoir installé WinPcap ou npcap (testé avec la version WinPcap 4.1.3) (Si vous utilisez npcap, assurez-vous d'installer avec "Installer Npcap en mode compatible avec l'API WinPcap")
- Vous devez placer
Packet.lib
du pack WinPcap Developers dans un répertoire nommélib
, à la racine de ce référentiel. Vous pouvez également utiliser l'un des emplacements répertoriés dans les variables d'environnement%LIB%
/$Env:LIB
. Pour la chaîne d'outils 64 bits, c'est dansWpdPack/Lib/x64/Packet.lib
, pour la chaîne d'outils 32 bits, c'est dansWpdPack/Lib/Packet.lib
.
Source : https://github.com/libpnet/libpnet/blob/master/README.md