У меня есть пример файла pcap, который я пытаюсь проанализировать с помощью io.pkts, я получаю исключение для одного пакета и, чтобы понять, в чем причина, я попробовал этот код.
IPPacket ip = (IPPacket) packet.getPacket (Protocol.IPv4); это возвращалось ноль.
System.out.println("arp: " + packet.hasProtocol(Protocol.ARP));
System.out.println("tcp: " + packet.hasProtocol(Protocol.TCP));
System.out.println("udp: " + packet.hasProtocol(Protocol.UDP));
System.out.println("ipv4: " + packet.hasProtocol(Protocol.IPv4));
System.out.println("icmp: " + packet.hasProtocol(Protocol.ICMP));
System.out.println("eth-II: " + packet.hasProtocol(Protocol.ETHERNET_II));
System.out.println("unknown: " + packet.hasProtocol(Protocol.UNKNOWN));
System.out.println("IPv6: " + packet.hasProtocol(Protocol.IPv6));
System.out.println("ICMP6: " + packet.hasProtocol(Protocol.ICMP6));
System.out.println("IGMP: " + packet.hasProtocol(Protocol.IGMP));
System.out.println("RTCP: " + packet.hasProtocol(Protocol.RTCP));
System.out.println("RTP: " + packet.hasProtocol(Protocol.RTP));
System.out.println("SDP: " + packet.hasProtocol(Protocol.SDP));
System.out.println("SCTP: " + packet.hasProtocol(Protocol.SCTP));
System.out.println("SLL: " + packet.hasProtocol(Protocol.SLL));
System.out.println("TLS: " + packet.hasProtocol(Protocol.TLS));
System.out.println("SIP: " + packet.hasProtocol(Protocol.SIP));
System.out.println("PCAP: " + packet.hasProtocol(Protocol.PCAP));
это то, что я получаю
arp: false
tcp: false
udp: false
ipv4: false
icmp: false
eth-II: true
unknown: false
IPv6: false
ICMP6: false
IGMP: false
RTCP: false
RTP: false
SDP: false
SCTP: false
SLL: false
TLS: false
SIP: false
PCAP: true
все, кроме ETHERNET-II и PCAP, возвращают значение true. как я могу получить исходный и целевой ips и порты и всю другую информацию.
Еще один вопрос, как получить длину кадра и длину пакета?