一尘不染

ICMP套接字(Linux)

linux

是否可以在IP协议下使用ICMP套接字?也许像:

socket(PF_INET, <type>, IPPROTO_ICMP)?

我应该在字段中输入什么?我看到了一些使用SOCK_RAW的示例,但是这是否会阻止OS处理IP协议呢?

还有一件事。由于该协议不涉及任何端口,操作系统如何知道他应该向哪个进程发送ICMP数据报?


阅读 326

收藏
2020-06-02

共1个答案

一尘不染

是的,这是可能的,因为该ping命令执行ICMP。

要找出所涉及的系统调用,您可以使用strace该命令(在根目录下)。

您也可以浏览该命令的源代码,例如Debian的ping

还有一个liboping库可以帮助您…

2020-06-02