2016-11-16 434 views
0

我想實現基本的網絡檢查功能來測試提供的url是否響應(例如,ping www.google.com)。它必須提供操作信息,例如,所請求的服務不可用或無法訪問主機。我可以使用icmp4j庫來實現它。但我想實現相同的使用pcap4j庫。我想把網址放在文本框中,然後點擊連接按鈕,它會調用pcap4j api來檢查主機是否響應。如何使用pcap4j庫實現ping like功能

+0

你想在以太網上使用icmpv4嗎? – kaitoy

+0

現在是,稍後我將在Web服務器上使用該實用程序,該服務器將檢查具有不同應用程序的其他服務器是否啓動。 – Swapnil

回答

0

可以使用的IcmpV4EchoPacketIcmpV4CommonPacketIpV4PacketEthernetPacket的建築工地上的以太網數據包創建ICMPv4回(平),並通過PcapHandle.sendPacket()給他們。請參考pcap4j-sample項目中的org.pcap4j.sample.SendFragmentedEcho

您需要實施ARP來解析pcap4j-sample項目中的IP地址爲MAC地址,如org.pcap4j.sample.SendArpRequest

而且您還需要實現一項功能,以某種方式從給定IP地址查找下一個躍點(默認網關左右)。 Pcap4J不提供API來支持這個實現。 (Java不提供API來獲取路由表...)

您可能最好使用java.net.InetAddress#isReachable()來代替。

+0

當然,我正在使用java.net.InetAddress#isReachable() – Swapnil