#arp #raw-sockets #async-io #packet #rarp #mac-to-ip #ip-to-mac

arp-toolkit

使用原始套接字在Rust中实现的ARP和RARP工具包

6个版本

0.3.2 2023年7月30日
0.3.1 2023年3月19日
0.3.0 2022年8月29日
0.2.0 2021年6月10日
0.1.1 2021年5月28日

#712网络编程

Download history 196/week @ 2024-04-08 198/week @ 2024-04-15 206/week @ 2024-04-22 117/week @ 2024-04-29 82/week @ 2024-05-06 70/week @ 2024-05-13 223/week @ 2024-05-20 119/week @ 2024-05-27 160/week @ 2024-06-03 276/week @ 2024-06-10 359/week @ 2024-06-17 147/week @ 2024-06-24 242/week @ 2024-07-01 155/week @ 2024-07-08 146/week @ 2024-07-15 182/week @ 2024-07-22

每月725次下载

MIT 许可证

22KB
450

arp-toolkit 构建 crates.io

为(R)ARP(反向地址解析协议)提供的工具包。

支持通过抽象客户端简化发送和接收(R)ARP请求/响应。同时允许轻松操作和构建(R)ARP数据包。

功能

  • 发送和接收ARP/RARP消息
  • 抽象ARP客户端,提供对大多数常见ARP/RARP用例的简单访问
  • 高级API,允许任意构建和操作ARP/RARP数据包
  • 同步(阻塞)和异步IO

构建

要构建它,请使用

cargo build

注意:默认只构建async-example。要构建sync-example,请切换到目录并运行cargo build。这是因为同步和异步不能在同一crate中同时使用。

用法

examples/sync-example展示了使用阻塞IO的ArpClient类的高级用法。例如,它说明如何通过单个函数调用获取与IP对应的MAC地址,反之亦然。async-example展示了相同的功能,但使用异步IO。

还可以直接发送、接收和操作(R)ARP数据包。要了解这是如何工作的,请查看示例及其包含的方法resolve_advanced

要使用阻塞IO而不是异步IO,请在您的Cargo.toml中激活特征sync,如下所示

[dependencies]
arp-toolkit = {version = x.x.x, features = ["sync"]}

重要提示:由于此库使用原始套接字,您需要设置CAP_NET_RAW权限或将程序以sudo运行。(不推荐)

依赖项

~2.9–4.5MB
~81K SLoC