如何使用pcap4j库实现ping功能

时间:2016-11-16 10:24:40

标签: java pcap4j

我想实施基本的网络检查功能来测试提供的网址是否响应(例如 ping www.google.com )。它必须提供操作信息,例如,指示请求的服务不可用或无法访问主机。我可以使用 icmp4j 库来实现它。但我希望使用 pcap4j 库实现相同目的。我想把URL放在文本框中,然后点击连接按钮,它将调用pcap4j api来检查主机是否响应。

1 个答案:

答案 0 :(得分:0)

您可以使用IcmpV4EchoPacketIcmpV4CommonPacketIpV4PacketEthernetPacket的构建器在以太网数据包上创建ICMPv4 Echo(ping),并通过{{1}发送它们}。请参阅pcap4j-sample项目中的PcapHandle.sendPacket()

您需要实施ARP以将IP地址解析为MAC地址,例如pcap4j-sample项目中的org.pcap4j.sample.SendFragmentedEcho

您还需要实现一项功能,以某种方式从给定的IP地址中查找下一跳(默认网关等)。 Pcap4J没有提供API来支持这种实现。 (Java没有提供API来获取路由表......)

您最好使用org.pcap4j.sample.SendArpRequest代替。