0

特定のパケットをキャプチャすると、同じ ping を使用して同じことを再現できません。(たとえば、プロジェクトを実行して cmd "ping somethingthatdoesntwork.comm" を実行すると、結果:ページに到達できませんでした。2 回目に同じ ping を実行しても何も起こりません。

public class Pcap4jLoop {

    public static void main(String[] args)
            throws PcapNativeException, IOException, NotOpenException, InterruptedException {
        String filter = null;
        if (args.length != 0) {
            filter = args[0];
        }

        PcapNetworkInterface nif = new NifSelector().selectNetworkInterface();
        if (nif == null) {
            System.exit(1);
        }
        final PcapHandle handle = nif.openLive(65536, PromiscuousMode.NONPROMISCUOUS, 10);

        PacketListener listener = new PacketListener() {
            public void gotPacket(PcapPacket packet) {
                printPacket(packet, handle);
            }

        };

        while (true) {
            handle.loop(1, listener);
            Thread.sleep(10);
        }
    }

    private static void printPacket(Packet packet, PcapHandle ph) {
        StringBuilder sb = new StringBuilder();
        if (packet != null)
            if (packet.toString().contains("Question") && packet.toString().contains("Authority")) {
                System.out.println(packet.toString().split("DNS Header")[1].split("QNAME: ")[1].split("QTYPE")[0]);
                if (packet.toString().contains("RCODE: 3")) {
                    System.out.println("Couldn't reach this page");
                }
                System.out.println("_______________________________________");
            }
    }
}
4

0 に答える 0