6 months ago
- 通过ICMP套接字发送ping通常需要root权限,但ping命令行工具通过使用带有协议标志的UDP套接字无需root即可工作
- 一个Rust示例演示了如何使用socket2 crate创建支持ICMP协议的UDP套接字
- Linux和macOS处理ping数据包的方式不同:Linux内核会覆盖标识符和校验和字段,而macOS要求正确的校验和
- 响应处理在macOS(包含IP头)和Linux(不包含IP头)之间也存在差异
- 提供了发送ping数据包、计算校验和(macOS需要)以及解析响应的示例代码