需要建立socket,参数是AF_INET,SOCK_RAW,IPPROTO_ICMP
自己构造ICMP数据包, sendto发送给某地址。
ICMP有多种,你可以发送type为13的时间戳请求。
然后调用recvfrom会收到type为14的timestamp reply的IP包,
IP头一般是20 Bytes,里面包含src IP,des IP还有TTL等。
IP包的数据就是返回ICMP timestamp reply报文,里面有origTimestamp,recvTimestamp,transStamp,可以计算出时间。
可以参考网页链接网页链接
觉得有帮助可以注册帐号,给他点个“星”
ICMP是Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
ping是DOS命令,通常用于检测网络连接和故障。Ping是Internet包资源管理器,用于测试网络连接量的程序。Ping向目的地发送ICMP回声清除消息,并报告是否接收到所需的ICMP回声响应。
ping命令 – 测试主机间网络连通性-c指定发送报文的次数
连续ping5次:
# ping -c 4
发送5个ICMP包 《Linux就该这么学》
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)