我想实施基本的网络检查功能来测试提供的网址是否响应(例如 ping www.google.com )。它必须提供操作信息,例如,指示请求的服务不可用或无法访问主机。我可以使用 icmp4j 库来实现它。但我希望使用 pcap4j 库实现相同目的。我想把URL放在文本框中,然后点击连接按钮,它将调用pcap4j api来检查主机是否响应。
答案 0 :(得分:0)
您可以使用IcmpV4EchoPacket
,IcmpV4CommonPacket
,IpV4Packet
和EthernetPacket
的构建器在以太网数据包上创建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
代替。