如何检查C程序中是否可以访问给定的IP地址

时间:2011-10-04 11:33:12

标签: c sockets networking ip ping

我需要一个C程序来检查用户是否可以访问ip地址(ipv4和ipv6)。我不知道港口没有。所以我无法连接和检查。功能或多或少像ping。除了我不想使用ping,因为涉及的开销。

2 个答案:

答案 0 :(得分:1)

您需要创建一个原始套接字,然后构造ICMP数据包并将其发送到目的地。

http://courses.cs.vt.edu/~cs4254/fall04/slides/raw_6.pdf

答案 1 :(得分:1)

让主机可达并不意味着您将能够从中获得服务。最好的方法是尝试连接到正确的端口号。你想要达到什么目的?

此外,虽然ICMP是这样做的明智之举,但如果主机有防火墙禁用ICMP,它可能无效。在这种情况下,你不会得到任何回应。