Tag: ping

创建PING程序时限制ICMP回应

我正在编写一个multithreadingping程序。 我在每个线程上创建了rawsockets(对于每个IP),并使用sendto()向每个线程发送ICMP Echo Request,然后在每个线程中执行recvfrom()。 我从各种套接字的IP中获取消息(如果我使用套接字S1用于IP1的sendto,我从IP1到S1,S2等回复回复)。 我需要做绑定吗? 另一个问题是,即使我只发送1个ICMP请求,我也会收到许多来自目标的回应回复。 有什么办法可以限制吗? 这导致我错过了一些其他ICMP数据包。 我的程序有没有办法让目标停止发送ICMP echo? 谢谢,

发送ICMP ping

对于ICMP ping请求(echo请求),我是否需要获取目标的MAC地址? 我试图学习如何使用原始套接字在C中实现它,但无法理解如何获取目标的MAC地址。 任何帮助表示赞赏。 谢谢。

在C程序中发送ICMP数据包

我正在尝试在C中创建一个ICMP ping测试程序,但是在成功发送数据包时遇到了困难。 sendto函数返回字节数和所有内容但实际上没有发送数据包。 我已经在目标计算机上使用WireSharkvalidation了这一点。 主机上的常规ping工作正常,但在WireShark中显示。 这是我的代码: #include #include #include #include #include #include #include #include #include #include #include #include #include unsigned short cksum(unsigned short *addr, int len); int main(int argc, char *argv[]) { int sock; char send_buf[400], recv_buf[400], src_name[256], src_ip[15], dst_ip[15]; struct ip *ip = (struct ip *)send_buf; struct icmp *icmp = (struct icmp *)(ip + […]

从C / C ++程序进行Ping

我想编写一个C或C ++程序,给定一个IP地址,ping它然后根据Ping是否成功执行进一步的操作。 这该怎么做?