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 在 网络编程
每月725次下载
22KB
450 行
arp-toolkit

为(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