├── .circleci └── config.yml ├── .dockerignore ├── .github └── FUNDING.yml ├── .gitignore ├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .travis.yml ├── CHANGES.md ├── Dockerfile ├── LICENSE ├── README.md ├── README_ja.md ├── appveyor.yml ├── mvn ├── settings.xml ├── toolchains_appvayor_11.xml ├── toolchains_circleci_10.xml ├── toolchains_docker_11.xml ├── toolchains_travis_11.xml ├── toolchains_travis_9.xml └── toolchains_travis_mac.xml ├── mvnw ├── mvnw.cmd ├── pcap4j-core ├── pom.xml └── src │ ├── main │ └── java │ │ ├── module-info.java │ │ └── org │ │ └── pcap4j │ │ ├── Pcap4jPropertiesLoader.java │ │ ├── core │ │ ├── AbstractPcapAddress.java │ │ ├── BpfProgram.java │ │ ├── Inets.java │ │ ├── NativeMappings.java │ │ ├── NativePacketDllMappings.java │ │ ├── NotOpenException.java │ │ ├── PacketListener.java │ │ ├── PcapAddress.java │ │ ├── PcapDumper.java │ │ ├── PcapHandle.java │ │ ├── PcapIpV4Address.java │ │ ├── PcapIpV6Address.java │ │ ├── PcapNativeException.java │ │ ├── PcapNetworkInterface.java │ │ ├── PcapStat.java │ │ ├── PcapStatEx.java │ │ ├── Pcaps.java │ │ └── RawPacketListener.java │ │ ├── packet │ │ ├── AbstractPacket.java │ │ ├── AbstractPppPacket.java │ │ ├── ArpPacket.java │ │ ├── BsdLoopbackPacket.java │ │ ├── BuilderIterator.java │ │ ├── ChecksumBuilder.java │ │ ├── CompressedPacket.java │ │ ├── DnsDomainName.java │ │ ├── DnsPacket.java │ │ ├── DnsQuestion.java │ │ ├── DnsRDataA.java │ │ ├── DnsRDataAaaa.java │ │ ├── DnsRDataCName.java │ │ ├── DnsRDataCaa.java │ │ ├── DnsRDataHInfo.java │ │ ├── DnsRDataMInfo.java │ │ ├── DnsRDataMb.java │ │ ├── DnsRDataMd.java │ │ ├── DnsRDataMf.java │ │ ├── DnsRDataMg.java │ │ ├── DnsRDataMr.java │ │ ├── DnsRDataMx.java │ │ ├── DnsRDataNs.java │ │ ├── DnsRDataNull.java │ │ ├── DnsRDataPtr.java │ │ ├── DnsRDataSoa.java │ │ ├── DnsRDataTxt.java │ │ ├── DnsRDataWks.java │ │ ├── DnsResourceRecord.java │ │ ├── Dot112040BssCoexistenceElement.java │ │ ├── Dot11AbstractSupportedRatesElement.java │ │ ├── Dot11ChannelEntry.java │ │ ├── Dot11ChannelUsageElement.java │ │ ├── Dot11DsssParameterSetElement.java │ │ ├── Dot11ExtendedCapabilitiesElement.java │ │ ├── Dot11ExtendedSupportedRatesElement.java │ │ ├── Dot11FrameControl.java │ │ ├── Dot11HTCapabilitiesElement.java │ │ ├── Dot11HtControl.java │ │ ├── Dot11InformationElement.java │ │ ├── Dot11InterworkingElement.java │ │ ├── Dot11LinkAdaptationControl.java │ │ ├── Dot11ManagementPacket.java │ │ ├── Dot11MeshIdElement.java │ │ ├── Dot11ProbeRequestPacket.java │ │ ├── Dot11RequestElement.java │ │ ├── Dot11Selector.java │ │ ├── Dot11SequenceControl.java │ │ ├── Dot11SsidElement.java │ │ ├── Dot11SsidListElement.java │ │ ├── Dot11SupportedOperatingClassesElement.java │ │ ├── Dot11SupportedRatesElement.java │ │ ├── Dot11VendorSpecificElement.java │ │ ├── Dot1qVlanTagPacket.java │ │ ├── EncryptedPacket.java │ │ ├── EthernetPacket.java │ │ ├── FragmentedPacket.java │ │ ├── GtpSelector.java │ │ ├── GtpV1ExtPduSessionContainerPacket.java │ │ ├── GtpV1Packet.java │ │ ├── GtpVersion.java │ │ ├── HdlcPppPacket.java │ │ ├── IcmpIdentifiablePacket.java │ │ ├── IcmpV4CommonPacket.java │ │ ├── IcmpV4DestinationUnreachablePacket.java │ │ ├── IcmpV4EchoPacket.java │ │ ├── IcmpV4EchoReplyPacket.java │ │ ├── IcmpV4InformationReplyPacket.java │ │ ├── IcmpV4InformationRequestPacket.java │ │ ├── IcmpV4InvokingPacketPacket.java │ │ ├── IcmpV4ParameterProblemPacket.java │ │ ├── IcmpV4RedirectPacket.java │ │ ├── IcmpV4SourceQuenchPacket.java │ │ ├── IcmpV4TimeExceededPacket.java │ │ ├── IcmpV4TimestampPacket.java │ │ ├── IcmpV4TimestampReplyPacket.java │ │ ├── IcmpV6CommonPacket.java │ │ ├── IcmpV6DestinationUnreachablePacket.java │ │ ├── IcmpV6EchoReplyPacket.java │ │ ├── IcmpV6EchoRequestPacket.java │ │ ├── IcmpV6HomeAgentAddressDiscoveryReplyPacket.java │ │ ├── IcmpV6HomeAgentAddressDiscoveryRequestPacket.java │ │ ├── IcmpV6InvokingPacketPacket.java │ │ ├── IcmpV6MobilePrefixAdvertisementPacket.java │ │ ├── IcmpV6MobilePrefixSolicitationPacket.java │ │ ├── IcmpV6NeighborAdvertisementPacket.java │ │ ├── IcmpV6NeighborSolicitationPacket.java │ │ ├── IcmpV6PacketTooBigPacket.java │ │ ├── IcmpV6ParameterProblemPacket.java │ │ ├── IcmpV6RedirectPacket.java │ │ ├── IcmpV6RouterAdvertisementPacket.java │ │ ├── IcmpV6RouterSolicitationPacket.java │ │ ├── IcmpV6TimeExceededPacket.java │ │ ├── IllegalDnsRData.java │ │ ├── IllegalIpV4InternetTimestampOptionData.java │ │ ├── IllegalIpV4Option.java │ │ ├── IllegalIpV6NeighborDiscoveryOption.java │ │ ├── IllegalIpV6Option.java │ │ ├── IllegalIpV6RoutingData.java │ │ ├── IllegalPacket.java │ │ ├── IllegalRadiotapData.java │ │ ├── IllegalRawDataException.java │ │ ├── IllegalSctpChunk.java │ │ ├── IllegalTcpOption.java │ │ ├── IpPacket.java │ │ ├── IpSelector.java │ │ ├── IpV4EndOfOptionList.java │ │ ├── IpV4InternetTimestampOption.java │ │ ├── IpV4InternetTimestampOptionAddressPrespecified.java │ │ ├── IpV4InternetTimestampOptionTimestamps.java │ │ ├── IpV4InternetTimestampOptionTimestampsWithAddresses.java │ │ ├── IpV4LooseSourceRouteOption.java │ │ ├── IpV4NoOperationOption.java │ │ ├── IpV4Packet.java │ │ ├── IpV4RecordRouteOption.java │ │ ├── IpV4Rfc1349Tos.java │ │ ├── IpV4Rfc791SecurityOption.java │ │ ├── IpV4Rfc791Tos.java │ │ ├── IpV4RouteOption.java │ │ ├── IpV4StreamIdOption.java │ │ ├── IpV4StrictSourceRouteOption.java │ │ ├── IpV6ExtDestinationOptionsPacket.java │ │ ├── IpV6ExtFragmentPacket.java │ │ ├── IpV6ExtHopByHopOptionsPacket.java │ │ ├── IpV6ExtOptionsPacket.java │ │ ├── IpV6ExtRoutingPacket.java │ │ ├── IpV6ExtUnknownPacket.java │ │ ├── IpV6NeighborDiscoveryMtuOption.java │ │ ├── IpV6NeighborDiscoveryPrefixInformationOption.java │ │ ├── IpV6NeighborDiscoveryRedirectedHeaderOption.java │ │ ├── IpV6NeighborDiscoverySourceLinkLayerAddressOption.java │ │ ├── IpV6NeighborDiscoveryTargetLinkLayerAddressOption.java │ │ ├── IpV6Packet.java │ │ ├── IpV6Pad1Option.java │ │ ├── IpV6PadNOption.java │ │ ├── IpV6RoutingSourceRouteData.java │ │ ├── IpV6SimpleFlowLabel.java │ │ ├── IpV6SimpleTrafficClass.java │ │ ├── LengthBuilder.java │ │ ├── LinuxSllPacket.java │ │ ├── LlcControlInformation.java │ │ ├── LlcControlSupervisory.java │ │ ├── LlcControlUnnumbered.java │ │ ├── LlcPacket.java │ │ ├── Packet.java │ │ ├── PacketIterator.java │ │ ├── PacketPropertiesLoader.java │ │ ├── PppPacket.java │ │ ├── PppSelector.java │ │ ├── RadiotapDataAMpduStatus.java │ │ ├── RadiotapDataAntenna.java │ │ ├── RadiotapDataAntennaNoise.java │ │ ├── RadiotapDataAntennaSignal.java │ │ ├── RadiotapDataChannel.java │ │ ├── RadiotapDataDbAntennaNoise.java │ │ ├── RadiotapDataDbAntennaSignal.java │ │ ├── RadiotapDataDbTxAttenuation.java │ │ ├── RadiotapDataDbmTxPower.java │ │ ├── RadiotapDataFhss.java │ │ ├── RadiotapDataFlags.java │ │ ├── RadiotapDataLockQuality.java │ │ ├── RadiotapDataMcs.java │ │ ├── RadiotapDataPad.java │ │ ├── RadiotapDataRate.java │ │ ├── RadiotapDataRxFlags.java │ │ ├── RadiotapDataTsft.java │ │ ├── RadiotapDataTxAttenuation.java │ │ ├── RadiotapDataVht.java │ │ ├── RadiotapFecType.java │ │ ├── RadiotapPacket.java │ │ ├── RadiotapPresentBitmask.java │ │ ├── SctpPacket.java │ │ ├── SimpleBuilder.java │ │ ├── SimplePacket.java │ │ ├── SnapPacket.java │ │ ├── Ssh2BinaryPacket.java │ │ ├── Ssh2Boolean.java │ │ ├── Ssh2DebugPacket.java │ │ ├── Ssh2DisconnectPacket.java │ │ ├── Ssh2IgnorePacket.java │ │ ├── Ssh2KexDhInitPacket.java │ │ ├── Ssh2KexDhReplyPacket.java │ │ ├── Ssh2KexInitPacket.java │ │ ├── Ssh2MpInt.java │ │ ├── Ssh2NameList.java │ │ ├── Ssh2NewKeysPacket.java │ │ ├── Ssh2ServiceAcceptPacket.java │ │ ├── Ssh2ServiceRequestPacket.java │ │ ├── Ssh2String.java │ │ ├── Ssh2UnimplementedPacket.java │ │ ├── Ssh2VersionExchangePacket.java │ │ ├── SshPacket.java │ │ ├── TcpEndOfOptionList.java │ │ ├── TcpMaximumSegmentSizeOption.java │ │ ├── TcpNoOperationOption.java │ │ ├── TcpPacket.java │ │ ├── TcpSackOption.java │ │ ├── TcpSackPermittedOption.java │ │ ├── TcpTimestampsOption.java │ │ ├── TcpWindowScaleOption.java │ │ ├── TransportPacket.java │ │ ├── UdpPacket.java │ │ ├── UnknownDnsRData.java │ │ ├── UnknownIpV4InternetTimestampOptionData.java │ │ ├── UnknownIpV4Option.java │ │ ├── UnknownIpV6NeighborDiscoveryOption.java │ │ ├── UnknownIpV6Option.java │ │ ├── UnknownIpV6RoutingData.java │ │ ├── UnknownPacket.java │ │ ├── UnknownRadiotapData.java │ │ ├── UnknownSctpChunk.java │ │ ├── UnknownTcpOption.java │ │ ├── constant │ │ │ ├── Ssh2CompressionAlgorithmName.java │ │ │ ├── Ssh2EncryptionAlgorithmName.java │ │ │ ├── Ssh2KexAlgorithmName.java │ │ │ ├── Ssh2MacAlgorithmName.java │ │ │ └── Ssh2PublicKeyAlgorithmName.java │ │ ├── factory │ │ │ ├── PacketFactories.java │ │ │ ├── PacketFactory.java │ │ │ ├── PacketFactoryBinder.java │ │ │ ├── PacketFactoryBinderProvider.java │ │ │ ├── SimplePacketFactoryBinder.java │ │ │ └── StaticUnknownPacketFactory.java │ │ ├── namednumber │ │ │ ├── ArpHardwareType.java │ │ │ ├── ArpOperation.java │ │ │ ├── DataLinkType.java │ │ │ ├── DnsClass.java │ │ │ ├── DnsOpCode.java │ │ │ ├── DnsRCode.java │ │ │ ├── DnsResourceRecordType.java │ │ │ ├── Dot11AccessNetworkType.java │ │ │ ├── Dot11BssMembershipSelector.java │ │ │ ├── Dot11ChannelUsageMode.java │ │ │ ├── Dot11FrameType.java │ │ │ ├── Dot11InformationElementId.java │ │ │ ├── Dot11ServiceIntervalGranularity.java │ │ │ ├── Dot11VenueGroup.java │ │ │ ├── Dot11VenueInfo.java │ │ │ ├── EtherType.java │ │ │ ├── GtpV1ExtPduSessionContainerPduType.java │ │ │ ├── GtpV1ExtensionHeaderType.java │ │ │ ├── GtpV1MessageType.java │ │ │ ├── GtpV2MessageType.java │ │ │ ├── HttpStatusCode.java │ │ │ ├── IcmpV4Code.java │ │ │ ├── IcmpV4Type.java │ │ │ ├── IcmpV6Code.java │ │ │ ├── IcmpV6Type.java │ │ │ ├── IpNumber.java │ │ │ ├── IpV4InternetTimestampOptionFlag.java │ │ │ ├── IpV4OptionType.java │ │ │ ├── IpV4SecurityOptionCompartments.java │ │ │ ├── IpV4SecurityOptionHandlingRestrictions.java │ │ │ ├── IpV4SecurityOptionSecurity.java │ │ │ ├── IpV4SecurityOptionTransmissionControlCode.java │ │ │ ├── IpV4TosPrecedence.java │ │ │ ├── IpV4TosTos.java │ │ │ ├── IpV6NeighborDiscoveryOptionType.java │ │ │ ├── IpV6OptionType.java │ │ │ ├── IpV6RoutingType.java │ │ │ ├── IpVersion.java │ │ │ ├── LinuxSllPacketType.java │ │ │ ├── LlcControlModifierFunction.java │ │ │ ├── LlcControlSupervisoryFunction.java │ │ │ ├── LlcNumber.java │ │ │ ├── NamedNumber.java │ │ │ ├── NotApplicable.java │ │ │ ├── Oui.java │ │ │ ├── Port.java │ │ │ ├── PppDllProtocol.java │ │ │ ├── ProtocolFamily.java │ │ │ ├── RadiotapPresentBitNumber.java │ │ │ ├── RadiotapVhtBandwidth.java │ │ │ ├── SctpChunkType.java │ │ │ ├── SctpPort.java │ │ │ ├── Ssh2DisconnectionReasonCode.java │ │ │ ├── Ssh2MessageNumber.java │ │ │ ├── TcpOptionKind.java │ │ │ ├── TcpPort.java │ │ │ └── UdpPort.java │ │ └── packet.properties │ │ ├── pcap4j.properties │ │ └── util │ │ ├── ByteArrays.java │ │ ├── IcmpV4Helper.java │ │ ├── IcmpV6Helper.java │ │ ├── Inet4NetworkAddress.java │ │ ├── IpV4Helper.java │ │ ├── LazyValue.java │ │ ├── LinkLayerAddress.java │ │ ├── MacAddress.java │ │ ├── NifSelector.java │ │ ├── Packets.java │ │ └── PropertiesLoader.java │ └── test │ ├── java │ └── org │ │ └── pcap4j │ │ ├── Pcap4jPropertiesLoaderTest.java │ │ ├── core │ │ ├── BpfProgramTest.java │ │ ├── PcapDumperTest.java │ │ ├── PcapHandleTest.java │ │ ├── PcapNetworkInterfaceTest.java │ │ ├── PcapsTest.java │ │ └── test │ │ │ └── Constants.java │ │ └── util │ │ └── ByteArraysTest.java │ └── resources │ ├── logback-test.xml │ └── org │ └── pcap4j │ ├── core │ ├── PcapHandleTest.pcap │ ├── PcapsTest.testOpenOfflineWithTimestampPrecision.pcap │ └── udp_tcp_icmp.pcap │ └── pcap4j-test.properties ├── pcap4j-distribution ├── pom.xml └── src │ └── assemble │ ├── bin.xml │ └── src.xml ├── pcap4j-packetfactory-propertiesbased ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── module-info.java │ │ └── org │ │ │ └── pcap4j │ │ │ └── packet │ │ │ └── factory │ │ │ └── propertiesbased │ │ │ ├── PacketFactoryPropertiesLoader.java │ │ │ ├── PropertiesBasedDnsRDataFactory.java │ │ │ ├── PropertiesBasedIpV4InternetTimestampOptionDataFactory.java │ │ │ ├── PropertiesBasedIpV4OptionFactory.java │ │ │ ├── PropertiesBasedIpV4TosFactory.java │ │ │ ├── PropertiesBasedIpV6FlowLabelFactory.java │ │ │ ├── PropertiesBasedIpV6NeighborDiscoveryOptionFactory.java │ │ │ ├── PropertiesBasedIpV6OptionFactory.java │ │ │ ├── PropertiesBasedIpV6RoutingDataFactory.java │ │ │ ├── PropertiesBasedIpV6TrafficClassFactory.java │ │ │ ├── PropertiesBasedPacketFactory.java │ │ │ ├── PropertiesBasedRadiotapDataFactory.java │ │ │ ├── PropertiesBasedSctpChunkFactory.java │ │ │ ├── PropertiesBasedTcpOptionFactory.java │ │ │ ├── packet-factory.properties │ │ │ └── services │ │ │ ├── PropertiesBasedPacketFactoryBinder.java │ │ │ └── PropertiesBasedPacketFactoryBinderProvider.java │ └── resources │ │ └── META-INF │ │ └── services │ │ └── org.pcap4j.packet.factory.PacketFactoryBinderProvider │ └── test │ └── resources │ └── logback-test.xml ├── pcap4j-packetfactory-static ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── module-info.java │ │ └── org │ │ │ └── pcap4j │ │ │ └── packet │ │ │ └── factory │ │ │ └── statik │ │ │ ├── AbstractStaticPacketFactory.java │ │ │ ├── PacketInstantiater.java │ │ │ ├── StaticDataLinkTypePacketFactory.java │ │ │ ├── StaticDnsRDataFactory.java │ │ │ ├── StaticDot11FrameTypePacketFactory.java │ │ │ ├── StaticEtherTypePacketFactory.java │ │ │ ├── StaticGtpV1ExtensionPacketFactory.java │ │ │ ├── StaticIcmpV4TypePacketFactory.java │ │ │ ├── StaticIcmpV6TypePacketFactory.java │ │ │ ├── StaticIpNumberPacketFactory.java │ │ │ ├── StaticIpV4InternetTimestampOptionDataFactory.java │ │ │ ├── StaticIpV4OptionFactory.java │ │ │ ├── StaticIpV4TosFactory.java │ │ │ ├── StaticIpV6FlowLabelFactory.java │ │ │ ├── StaticIpV6NeighborDiscoveryOptionFactory.java │ │ │ ├── StaticIpV6OptionFactory.java │ │ │ ├── StaticIpV6RoutingDataFactory.java │ │ │ ├── StaticIpV6TrafficClassFactory.java │ │ │ ├── StaticLlcNumberPacketFactory.java │ │ │ ├── StaticNotApplicablePacketFactory.java │ │ │ ├── StaticPppDllProtocolPacketFactory.java │ │ │ ├── StaticProtocolFamilyPacketFactory.java │ │ │ ├── StaticRadiotapDataFieldFactory.java │ │ │ ├── StaticSctpChunkFactory.java │ │ │ ├── StaticSctpPortPacketFactory.java │ │ │ ├── StaticSsh2MessageNumberPacketFactory.java │ │ │ ├── StaticTcpOptionFactory.java │ │ │ ├── StaticTcpPortPacketFactory.java │ │ │ ├── StaticUdpPortPacketFactory.java │ │ │ └── services │ │ │ ├── StaticPacketFactoryBinder.java │ │ │ └── StaticPacketFactoryBinderProvider.java │ └── resources │ │ └── META-INF │ │ └── services │ │ └── org.pcap4j.packet.factory.PacketFactoryBinderProvider │ └── test │ ├── java │ └── org │ │ └── pcap4j │ │ └── test │ │ └── core │ │ └── PcapHandleTest.java │ └── resources │ ├── logback-test.xml │ └── org │ └── pcap4j │ └── test │ └── core │ └── udp_tcp_icmp.pcap ├── pcap4j-packettest ├── pom.xml └── src │ └── test │ ├── java │ └── org │ │ └── pcap4j │ │ └── test │ │ ├── core │ │ └── DltRawTest.java │ │ ├── packet │ │ ├── AbstractPacketTest.java │ │ ├── ArpPacketTest.java │ │ ├── BsdLoopbackPacketTest.java │ │ ├── DnsPacketTest.java │ │ ├── Dot11ProbeRequestPacketTest.java │ │ ├── Dot1qVlanTaggedPacketTest.java │ │ ├── EthernetPacketTest.java │ │ ├── GtpV1ExtPduSessionContainerPacketTest.java │ │ ├── GtpV1PacketTest.java │ │ ├── HdlcPppPacketTest.java │ │ ├── IcmpV4CommonPacketTest.java │ │ ├── IcmpV4DestinationUnreachablePacketTest.java │ │ ├── IcmpV4EchoPacketTest.java │ │ ├── IcmpV4EchoReplyPacketTest.java │ │ ├── IcmpV4InformationReplyPacketTest.java │ │ ├── IcmpV4InformationRequestPacketTest.java │ │ ├── IcmpV4ParameterProblemPacketTest.java │ │ ├── IcmpV4RedirectPacketTest.java │ │ ├── IcmpV4SourceQuenchPacketTest.java │ │ ├── IcmpV4TimeExceededPacketTest.java │ │ ├── IcmpV4TimestampPacketTest.java │ │ ├── IcmpV4TimestampReplyPacketTest.java │ │ ├── IcmpV6CommonPacketTest.java │ │ ├── IcmpV6DestinationUnreachablePacketTest.java │ │ ├── IcmpV6EchoReplyPacketTest.java │ │ ├── IcmpV6EchoRequestPacketTest.java │ │ ├── IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.java │ │ ├── IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.java │ │ ├── IcmpV6MobilePrefixAdvertisementPacketTest.java │ │ ├── IcmpV6MobilePrefixSolicitationPacketTest.java │ │ ├── IcmpV6NeighborAdvertisementPacketTest.java │ │ ├── IcmpV6NeighborSolicitationPacketTest.java │ │ ├── IcmpV6PacketTooBigPacketTest.java │ │ ├── IcmpV6ParameterProblemPacketTest.java │ │ ├── IcmpV6RedirectPacketTest.java │ │ ├── IcmpV6RouterAdvertisementPacketTest.java │ │ ├── IcmpV6RouterSolicitationPacketTest.java │ │ ├── IcmpV6TimeExceededPacketTest.java │ │ ├── IpV4PacketTest.java │ │ ├── IpV6ExtDestinationOptionsPacketTest.java │ │ ├── IpV6ExtFragmentPacketTest.java │ │ ├── IpV6ExtHopByHopOptionsPacketTest.java │ │ ├── IpV6ExtRoutingPacketTest.java │ │ ├── IpV6ExtUnknownPacketTest.java │ │ ├── IpV6PacketTest.java │ │ ├── LinuxSllPacketTest.java │ │ ├── LlcInformationPacketTest.java │ │ ├── LlcSupervisoryPacketTest.java │ │ ├── LlcUnnumberedPacketTest.java │ │ ├── PppPacketTest.java │ │ ├── RadiotapPacketTest.java │ │ ├── RandomPacketTester.java │ │ ├── SctpPacketTest.java │ │ ├── SnapPacketTest.java │ │ ├── TcpPacketTest.java │ │ └── UdpPacketTest.java │ │ └── util │ │ └── IpV4HelperTest.java │ └── resources │ ├── ArpPacketTest.log │ ├── ArpPacketTest.obj │ ├── ArpPacketTest.pcap │ ├── BsdLoopbackPacketTest.log │ ├── BsdLoopbackPacketTest.obj │ ├── BsdLoopbackPacketTest.pcap │ ├── DltRawTest.log │ ├── DltRawTest.pcap │ ├── DnsPacketTest.log │ ├── DnsPacketTest.obj │ ├── DnsPacketTest.pcap │ ├── Dot11ProbeRequestPacketTest.log │ ├── Dot11ProbeRequestPacketTest.obj │ ├── Dot11ProbeRequestPacketTest.pcap │ ├── Dot1qVlanTaggedPacketTest.log │ ├── Dot1qVlanTaggedPacketTest.obj │ ├── Dot1qVlanTaggedPacketTest.pcap │ ├── EthernetPacketTest.log │ ├── EthernetPacketTest.obj │ ├── EthernetPacketTest.pcap │ ├── GtpV1ExtPduSessionContainerPacketTest.log │ ├── GtpV1ExtPduSessionContainerPacketTest.obj │ ├── GtpV1ExtPduSessionContainerPacketTest.pcap │ ├── GtpV1PacketTest.log │ ├── GtpV1PacketTest.obj │ ├── GtpV1PacketTest.pcap │ ├── HdlcPppPacketTest.log │ ├── HdlcPppPacketTest.obj │ ├── HdlcPppPacketTest.pcap │ ├── IcmpV4CommonPacketTest.log │ ├── IcmpV4CommonPacketTest.obj │ ├── IcmpV4CommonPacketTest.pcap │ ├── IcmpV4DestinationUnreachablePacketTest.log │ ├── IcmpV4DestinationUnreachablePacketTest.obj │ ├── IcmpV4DestinationUnreachablePacketTest.pcap │ ├── IcmpV4EchoPacketTest.log │ ├── IcmpV4EchoPacketTest.obj │ ├── IcmpV4EchoPacketTest.pcap │ ├── IcmpV4EchoReplyPacketTest.log │ ├── IcmpV4EchoReplyPacketTest.obj │ ├── IcmpV4EchoReplyPacketTest.pcap │ ├── IcmpV4InformationReplyPacketTest.log │ ├── IcmpV4InformationReplyPacketTest.obj │ ├── IcmpV4InformationReplyPacketTest.pcap │ ├── IcmpV4InformationRequestPacketTest.log │ ├── IcmpV4InformationRequestPacketTest.obj │ ├── IcmpV4InformationRequestPacketTest.pcap │ ├── IcmpV4ParameterProblemPacketTest.log │ ├── IcmpV4ParameterProblemPacketTest.obj │ ├── IcmpV4ParameterProblemPacketTest.pcap │ ├── IcmpV4RedirectPacketTest.log │ ├── IcmpV4RedirectPacketTest.obj │ ├── IcmpV4RedirectPacketTest.pcap │ ├── IcmpV4SourceQuenchPacketTest.log │ ├── IcmpV4SourceQuenchPacketTest.obj │ ├── IcmpV4SourceQuenchPacketTest.pcap │ ├── IcmpV4TimeExceededPacketTest.log │ ├── IcmpV4TimeExceededPacketTest.obj │ ├── IcmpV4TimeExceededPacketTest.pcap │ ├── IcmpV4TimestampPacketTest.log │ ├── IcmpV4TimestampPacketTest.obj │ ├── IcmpV4TimestampPacketTest.pcap │ ├── IcmpV4TimestampReplyPacketTest.log │ ├── IcmpV4TimestampReplyPacketTest.obj │ ├── IcmpV4TimestampReplyPacketTest.pcap │ ├── IcmpV6CommonPacketTest.log │ ├── IcmpV6CommonPacketTest.obj │ ├── IcmpV6CommonPacketTest.pcap │ ├── IcmpV6DestinationUnreachablePacketTest.log │ ├── IcmpV6DestinationUnreachablePacketTest.obj │ ├── IcmpV6DestinationUnreachablePacketTest.pcap │ ├── IcmpV6EchoReplyPacketTest.log │ ├── IcmpV6EchoReplyPacketTest.obj │ ├── IcmpV6EchoReplyPacketTest.pcap │ ├── IcmpV6EchoRequestPacketTest.log │ ├── IcmpV6EchoRequestPacketTest.obj │ ├── IcmpV6EchoRequestPacketTest.pcap │ ├── IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.log │ ├── IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.obj │ ├── IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.pcap │ ├── IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.log │ ├── IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.obj │ ├── IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.pcap │ ├── IcmpV6MobilePrefixAdvertisementPacketTest.log │ ├── IcmpV6MobilePrefixAdvertisementPacketTest.obj │ ├── IcmpV6MobilePrefixAdvertisementPacketTest.pcap │ ├── IcmpV6MobilePrefixSolicitationPacketTest.log │ ├── IcmpV6MobilePrefixSolicitationPacketTest.obj │ ├── IcmpV6MobilePrefixSolicitationPacketTest.pcap │ ├── IcmpV6NeighborAdvertisementPacketTest.log │ ├── IcmpV6NeighborAdvertisementPacketTest.obj │ ├── IcmpV6NeighborAdvertisementPacketTest.pcap │ ├── IcmpV6NeighborSolicitationPacketTest.log │ ├── IcmpV6NeighborSolicitationPacketTest.obj │ ├── IcmpV6NeighborSolicitationPacketTest.pcap │ ├── IcmpV6PacketTooBigPacketTest.log │ ├── IcmpV6PacketTooBigPacketTest.obj │ ├── IcmpV6PacketTooBigPacketTest.pcap │ ├── IcmpV6ParameterProblemPacketTest.log │ ├── IcmpV6ParameterProblemPacketTest.obj │ ├── IcmpV6ParameterProblemPacketTest.pcap │ ├── IcmpV6RedirectPacketTest.log │ ├── IcmpV6RedirectPacketTest.obj │ ├── IcmpV6RedirectPacketTest.pcap │ ├── IcmpV6RouterAdvertisementPacketTest.log │ ├── IcmpV6RouterAdvertisementPacketTest.obj │ ├── IcmpV6RouterAdvertisementPacketTest.pcap │ ├── IcmpV6RouterSolicitationPacketTest.log │ ├── IcmpV6RouterSolicitationPacketTest.obj │ ├── IcmpV6RouterSolicitationPacketTest.pcap │ ├── IcmpV6TimeExceededPacketTest.log │ ├── IcmpV6TimeExceededPacketTest.obj │ ├── IcmpV6TimeExceededPacketTest.pcap │ ├── IpV4HelperTest.pcap │ ├── IpV4PacketTest.log │ ├── IpV4PacketTest.obj │ ├── IpV4PacketTest.pcap │ ├── IpV6ExtDestinationOptionsPacketTest.log │ ├── IpV6ExtDestinationOptionsPacketTest.obj │ ├── IpV6ExtDestinationOptionsPacketTest.pcap │ ├── IpV6ExtFragmentPacketTest.log │ ├── IpV6ExtFragmentPacketTest.obj │ ├── IpV6ExtFragmentPacketTest.pcap │ ├── IpV6ExtHopByHopOptionsPacketTest.log │ ├── IpV6ExtHopByHopOptionsPacketTest.obj │ ├── IpV6ExtHopByHopOptionsPacketTest.pcap │ ├── IpV6ExtRoutingPacketTest.log │ ├── IpV6ExtRoutingPacketTest.obj │ ├── IpV6ExtRoutingPacketTest.pcap │ ├── IpV6ExtUnknownPacketTest.log │ ├── IpV6ExtUnknownPacketTest.obj │ ├── IpV6ExtUnknownPacketTest.pcap │ ├── IpV6PacketTest.log │ ├── IpV6PacketTest.obj │ ├── IpV6PacketTest.pcap │ ├── LinuxSllPacketTest.log │ ├── LinuxSllPacketTest.obj │ ├── LinuxSllPacketTest.pcap │ ├── LlcInformationPacketTest.log │ ├── LlcInformationPacketTest.obj │ ├── LlcInformationPacketTest.pcap │ ├── LlcSupervisoryPacketTest.log │ ├── LlcSupervisoryPacketTest.obj │ ├── LlcSupervisoryPacketTest.pcap │ ├── LlcUnnumberedPacketTest.log │ ├── LlcUnnumberedPacketTest.obj │ ├── LlcUnnumberedPacketTest.pcap │ ├── PppPacketTest.log │ ├── PppPacketTest.obj │ ├── PppPacketTest.pcap │ ├── RadiotapPacketTest.log │ ├── RadiotapPacketTest.obj │ ├── RadiotapPacketTest.pcap │ ├── SctpPacketTest.log │ ├── SctpPacketTest.obj │ ├── SctpPacketTest.pcap │ ├── SnapPacketTest.log │ ├── SnapPacketTest.obj │ ├── SnapPacketTest.pcap │ ├── TcpPacketTest.log │ ├── TcpPacketTest.obj │ ├── TcpPacketTest.pcap │ ├── UdpPacketTest.log │ ├── UdpPacketTest.obj │ ├── UdpPacketTest.pcap │ └── UdpPacketTestChecksum0xFFFF.pcap ├── pcap4j-sample ├── pom.xml └── src │ └── main │ ├── java │ ├── module-info.java │ └── org │ │ └── pcap4j │ │ └── sample │ │ ├── DefragmentEcho.java │ │ ├── Docker.java │ │ ├── Dump.java │ │ ├── DumpLoop.java │ │ ├── GetNextPacket.java │ │ ├── GetNextPacketEx.java │ │ ├── GetNextRawPacket.java │ │ ├── GetRawNextPacketEx.java │ │ ├── HeavyLoop.java │ │ ├── IcmpV4ErrReplyer.java │ │ ├── Loop.java │ │ ├── LoopRaw.java │ │ ├── PcapFileMerger.java │ │ ├── ReadPacketFile.java │ │ ├── SendArpRequest.java │ │ └── SendFragmentedEcho.java │ └── resources │ ├── echoAndEchoReply.pcap │ └── flagmentedEcho.pcap ├── pcap4j-test-coverage └── pom.xml ├── pom.xml ├── tool ├── coveralls-report.sh └── named_numbers.pl └── www ├── HowToAddProtocolSupport.md ├── Packet.md ├── PacketFactory.md ├── api_mappings.md ├── images ├── builder_payloadBuilder.png ├── logos │ ├── Mr-pcap4j.png │ ├── pcap4j-logo-color.png │ ├── pcap4j-logo-grey.png │ ├── pcap4j-logo-whitish.png │ ├── pcap4j-logomark-color.png │ ├── pcap4j-logomark-grey.png │ ├── pcap4j-logomark-whitish.png │ ├── pcap4j_logomark_slack.png │ ├── pcap4jlogo.old.png │ ├── pcap4jlogo.sai │ └── pcap4jlogo_slack.old.jpg ├── packet_builder.png ├── packet_payload.png ├── pcap4j.pptx ├── propertiesBasedPacketFactory.png └── staticPacketFactory.png ├── index.html ├── logos.md ├── pcap4j_modules.md ├── sample_Loop.md ├── sample_Loop_ja.md ├── sample_SendArpRequest.md └── sample_SendArpRequest_ja.md /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.1 2 | 3 | executors: 4 | docker-jdk10: 5 | docker: 6 | - image: circleci/openjdk:10.0.2-13-jdk 7 | 8 | jobs: 9 | test: 10 | executor: docker-jdk10 11 | steps: 12 | - checkout 13 | - run: 14 | name: Install libpcap 15 | command: | 16 | sudo apt-get update 17 | sudo apt-get install -y libpcap0.8 18 | - run: 19 | name: Run mvnw verify 20 | command: ./mvnw verify --global-toolchains mvn/toolchains_circleci_10.xml 21 | 22 | workflows: 23 | version: 2 24 | test: 25 | jobs: 26 | - test: 27 | filters: 28 | branches: 29 | only: v1 30 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | pcap* 2 | www 3 | .git 4 | .settings 5 | .classpath 6 | .gitignore 7 | .project 8 | CHANGES.md 9 | LICENSE 10 | README* 11 | pom.xml 12 | Dockerfile 13 | .dockerignore 14 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [kaitoy] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | custom: # Replace with a single custom sponsorship URL 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | .project 3 | .classpath 4 | .settings/ 5 | pcap4j-test-coverage/src/ 6 | 7 | build/ 8 | .gradle/ 9 | bin/ 10 | .idea 11 | **/*.iml 12 | gradle-app.setting 13 | .gradletasknamecache 14 | 15 | .java-version 16 | 17 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | 3 | language: java 4 | 5 | addons: 6 | hosts: 7 | - pcap4j-test 8 | hostname: pcap4j-test 9 | 10 | git: 11 | quiet: true 12 | depth: 1 13 | 14 | branches: 15 | only: 16 | - v1 17 | 18 | matrix: 19 | include: 20 | - os: linux 21 | jdk: oraclejdk9 22 | env: COVERALLS=yes 23 | - os: linux 24 | dist: trusty 25 | jdk: openjdk11 26 | addons: 27 | apt: 28 | packages: 29 | - openjdk-6-jdk 30 | - os: osx 31 | osx_image: xcode10.1 32 | jdk: openjdk11 33 | addons: 34 | homebrew: 35 | update: true 36 | packages: 37 | - libpcap 38 | fast_finish: true 39 | 40 | cache: 41 | directories: 42 | - $HOME/.m2 43 | 44 | install: 45 | - | 46 | if [ "$TRAVIS_OS_NAME" = "linux" ]; then 47 | git clone -b libpcap-1.7.4 --depth 1 git://github.com/the-tcpdump-group/libpcap.git libpcap 48 | cd libpcap 49 | ./configure 50 | make && sudo make install 51 | fi 52 | 53 | script: 54 | - | 55 | cd "${TRAVIS_BUILD_DIR}" 56 | if [ "$TRAVIS_OS_NAME" = "linux" ]; then 57 | if [ "${COVERALLS}" = "yes" ]; then 58 | sudo ./mvnw --global-toolchains mvn/toolchains_travis_9.xml -Dorg.pcap4j.core.pcapLibName=/usr/local/lib/libpcap.so -B -DserviceJobId=$TRAVIS_JOB_ID -Dorg.pcap4j.core.test.enableTimestampPrecisionTests=true -P test-coverage verify coveralls:report 59 | else 60 | sudo ./mvnw --global-toolchains mvn/toolchains_travis_11.xml -Dorg.pcap4j.core.pcapLibName=/usr/local/lib/libpcap.so -Dorg.pcap4j.jre6-test.jvm=/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java -B install 61 | fi 62 | else 63 | sudo ./mvnw --global-toolchains mvn/toolchains_travis_mac.xml -B -Djna.library.path="$(find /usr/local/Cellar/libpcap/ -name lib)" install 64 | fi 65 | 66 | notifications: 67 | email: 68 | recipients: 69 | - kaitoy@pcap4j.org 70 | on_success: change 71 | on_failure: always 72 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # Dockerfile for Pcap4J 3 | # 4 | 5 | FROM openjdk:11-jdk-slim 6 | 7 | # Install libpcap. 8 | RUN apt-get update && \ 9 | apt-get install -y libpcap0.8 git 10 | 11 | # Build Pcap4J. 12 | RUN cd /usr/local/src/ && \ 13 | git clone -b v1 git://github.com/kaitoy/pcap4j.git 14 | WORKDIR /usr/local/src/pcap4j 15 | RUN ./mvnw --global-toolchains /usr/local/src/pcap4j/mvn/toolchains_docker_11.xml -P distribution-assembly install 2>&1 | tee build.log 16 | 17 | # Collect libraries. 18 | RUN mkdir bin && \ 19 | cd pcap4j-packetfactory-static && \ 20 | ../mvnw -DoutputDirectory=/usr/local/src/pcap4j/bin -Dmdep.stripVersion=true -DincludeScope=compile dependency:copy-dependencies && \ 21 | ../mvnw -DoutputDirectory=/usr/local/src/pcap4j/bin -Dmdep.stripVersion=true -DincludeGroupIds=ch.qos.logback dependency:copy-dependencies && \ 22 | cd ../pcap4j-distribution && \ 23 | ../mvnw -DoutputDirectory=/usr/local/src/pcap4j/bin -Dmdep.stripVersion=true -DincludeArtifactIds=pcap4j-packetfactory-static,pcap4j-sample dependency:copy-dependencies 24 | 25 | # Generate sample script. (/usr/local/src/pcap4j/bin/capture.sh) 26 | RUN echo '#!/bin/sh' > bin/capture.sh && \ 27 | echo java -cp /usr/local/src/pcap4j/bin/pcap4j-core.jar:/usr/local/src/pcap4j/bin/pcap4j-packetfactory-static.jar:/usr/local/src/pcap4j/bin/pcap4j-sample.jar:/usr/local/src/pcap4j/bin/jna.jar:/usr/local/src/pcap4j/bin/slf4j-api.jar:/usr/local/src/pcap4j/bin/logback-classic.jar:/usr/local/src/pcap4j/bin/logback-core.jar -Dorg.pcap4j.sample.Docker.nifName=\$1 -Dorg.pcap4j.sample.Docker.wait=\$2 -Dorg.pcap4j.sample.Docker.count=10 org.pcap4j.sample.Docker \$3 >> bin/capture.sh && \ 28 | chmod +x bin/capture.sh 29 | 30 | ENTRYPOINT ["/bin/sh", "/usr/local/src/pcap4j/bin/capture.sh"] 31 | CMD ["eth0", "false"] 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Pcap4J is distributed under the MIT license. 2 | 3 | Copyright (c) 2011 Pcap4J.org 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in the Software without restriction, 7 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 9 | subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT 13 | NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 14 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 15 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 16 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | -------------------------------------------------------------------------------- /mvn/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | ossrh 9 | ${env.SONATYPE_NEXUS_USERNAME} 10 | ${env.SONATYPE_NEXUS_PASSWORD} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /mvn/toolchains_appvayor_11.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | jdk 7 | 8 | 11 9 | 10 | 11 | C:\Program Files\Java\jdk11 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /mvn/toolchains_circleci_10.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | jdk 7 | 8 | 10 9 | 10 | 11 | /usr/lib/jvm/java-10-openjdk-amd64 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /mvn/toolchains_docker_11.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | jdk 7 | 8 | 11 9 | 10 | 11 | /usr/local/openjdk-11/ 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /mvn/toolchains_travis_11.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | jdk 7 | 8 | 11 9 | 10 | 11 | /home/travis/openjdk11 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /mvn/toolchains_travis_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | jdk 7 | 8 | 9 9 | 10 | 11 | /home/travis/oraclejdk9 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /mvn/toolchains_travis_mac.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | jdk 7 | 8 | 11 9 | 10 | 11 | /Users/travis/openjdk11 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module org.pcap4j.core { 2 | exports org.pcap4j.core; 3 | exports org.pcap4j.packet; 4 | exports org.pcap4j.packet.factory; 5 | exports org.pcap4j.packet.namednumber; 6 | exports org.pcap4j.packet.constant; 7 | exports org.pcap4j.util; 8 | 9 | opens org.pcap4j.packet; 10 | opens org.pcap4j.packet.namednumber; 11 | 12 | requires java.sql; 13 | 14 | // These transitive modifiers are needed to avoid weird surefire errors 15 | // during pcap4j-packetfactory-* testing (due to maybe surefire's bug). 16 | requires transitive com.sun.jna; 17 | requires transitive slf4j.api; 18 | 19 | uses org.pcap4j.packet.factory.PacketFactoryBinderProvider; 20 | } 21 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/core/NotOpenException.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.core; 9 | 10 | /** 11 | * @author Kaito Yamada 12 | * @since pcap4j 0.9.16 13 | */ 14 | public final class NotOpenException extends Exception { 15 | 16 | /** */ 17 | private static final long serialVersionUID = -3852491522682861395L; 18 | 19 | /** */ 20 | public NotOpenException() { 21 | super(); 22 | } 23 | 24 | /** @param message message */ 25 | public NotOpenException(String message) { 26 | super(message); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/core/PacketListener.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.core; 9 | 10 | import org.pcap4j.packet.Packet; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 0.9.8 15 | */ 16 | public interface PacketListener { 17 | 18 | /** @param packet packet */ 19 | public void gotPacket(Packet packet); 20 | } 21 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/core/PcapAddress.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2015 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.core; 9 | 10 | import java.net.InetAddress; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 0.9.1 15 | */ 16 | public interface PcapAddress { 17 | 18 | /** @return address or null */ 19 | public InetAddress getAddress(); 20 | 21 | /** @return netmask or null */ 22 | public InetAddress getNetmask(); 23 | 24 | /** @return broadcast address or null */ 25 | public InetAddress getBroadcastAddress(); 26 | 27 | /** @return destination address or null */ 28 | public InetAddress getDestinationAddress(); 29 | } 30 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/core/PcapIpV4Address.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2015 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.core; 9 | 10 | import java.net.Inet4Address; 11 | import org.pcap4j.core.NativeMappings.pcap_addr; 12 | import org.pcap4j.core.NativeMappings.sockaddr; 13 | import org.pcap4j.core.NativeMappings.sockaddr_in; 14 | 15 | /** 16 | * @author Kaito Yamada 17 | * @since pcap4j 0.9.15 18 | */ 19 | public final class PcapIpV4Address extends AbstractPcapAddress { 20 | 21 | private PcapIpV4Address(pcap_addr pcapAddr, short saFamily, String devName) { 22 | super(pcapAddr, saFamily, devName); 23 | } 24 | 25 | static PcapIpV4Address newInstance(pcap_addr pcapAddr, short saFamily, String devName) { 26 | return new PcapIpV4Address(pcapAddr, saFamily, devName); 27 | } 28 | 29 | @Override 30 | protected Inet4Address ntoInetAddress(sockaddr sa) { 31 | sockaddr_in addr = new sockaddr_in(sa.getPointer()); 32 | return Inets.ntoInetAddress(addr.sin_addr); 33 | } 34 | 35 | @Override 36 | public Inet4Address getAddress() { 37 | return (Inet4Address) super.getAddress(); 38 | } 39 | 40 | @Override 41 | public Inet4Address getNetmask() { 42 | return (Inet4Address) super.getNetmask(); 43 | } 44 | 45 | @Override 46 | public Inet4Address getBroadcastAddress() { 47 | return (Inet4Address) super.getBroadcastAddress(); 48 | } 49 | 50 | @Override 51 | public Inet4Address getDestinationAddress() { 52 | return (Inet4Address) super.getDestinationAddress(); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/core/PcapIpV6Address.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2015 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.core; 9 | 10 | import java.net.Inet6Address; 11 | import org.pcap4j.core.NativeMappings.pcap_addr; 12 | import org.pcap4j.core.NativeMappings.sockaddr; 13 | import org.pcap4j.core.NativeMappings.sockaddr_in6; 14 | 15 | /** 16 | * @author Kaito Yamada 17 | * @since pcap4j 0.9.15 18 | */ 19 | public final class PcapIpV6Address extends AbstractPcapAddress { 20 | 21 | private PcapIpV6Address(pcap_addr pcapAddr, short saFamily, String devName) { 22 | super(pcapAddr, saFamily, devName); 23 | } 24 | 25 | static PcapIpV6Address newInstance(pcap_addr pcapAddr, short saFamily, String devName) { 26 | return new PcapIpV6Address(pcapAddr, saFamily, devName); 27 | } 28 | 29 | @Override 30 | protected Inet6Address ntoInetAddress(sockaddr sa) { 31 | sockaddr_in6 addr = new sockaddr_in6(sa.getPointer()); 32 | return Inets.ntoInetAddress(addr.sin6_addr); 33 | } 34 | 35 | @Override 36 | public Inet6Address getAddress() { 37 | return (Inet6Address) super.getAddress(); 38 | } 39 | 40 | @Override 41 | public Inet6Address getNetmask() { 42 | return (Inet6Address) super.getNetmask(); 43 | } 44 | 45 | @Override 46 | public Inet6Address getBroadcastAddress() { 47 | return (Inet6Address) super.getBroadcastAddress(); 48 | } 49 | 50 | @Override 51 | public Inet6Address getDestinationAddress() { 52 | return (Inet6Address) super.getDestinationAddress(); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/core/PcapNativeException.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.core; 9 | 10 | /** 11 | * @author Kaito Yamada 12 | * @since pcap4j 0.9.1 13 | */ 14 | public final class PcapNativeException extends Exception { 15 | 16 | private static final long serialVersionUID = -6458526492950674556L; 17 | 18 | private Integer returnCode = null; 19 | 20 | /** */ 21 | public PcapNativeException() { 22 | super(); 23 | } 24 | 25 | /** @param message message */ 26 | public PcapNativeException(String message) { 27 | super(message); 28 | } 29 | 30 | /** 31 | * @param message message 32 | * @param returnCode returnCode 33 | */ 34 | public PcapNativeException(String message, Integer returnCode) { 35 | super(message); 36 | this.returnCode = returnCode; 37 | } 38 | 39 | /** 40 | * @param message message 41 | * @param cause cause 42 | */ 43 | public PcapNativeException(String message, Throwable cause) { 44 | super(message, cause); 45 | } 46 | 47 | /** @param cause cause */ 48 | public PcapNativeException(Throwable cause) { 49 | super(cause); 50 | } 51 | 52 | /** 53 | * @return the return code if the native function which caused this exception returned it; 54 | * otherwise null. 55 | */ 56 | public Integer getReturnCode() { 57 | return returnCode; 58 | } 59 | 60 | void setReturnCode(Integer returnCode) { 61 | this.returnCode = returnCode; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/core/PcapStat.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013-2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.core; 9 | 10 | import com.sun.jna.Pointer; 11 | import org.pcap4j.core.NativeMappings.pcap_stat; 12 | import org.pcap4j.core.NativeMappings.win_pcap_stat; 13 | 14 | /** 15 | * @author Kaito Yamada 16 | * @since pcap4j 0.9.16 17 | */ 18 | public final class PcapStat { 19 | 20 | private final long numPacketsReceived; 21 | private final long numPacketsDropped; 22 | private final long numPacketsDroppedByIf; 23 | private final long numPacketsCaptured; 24 | 25 | PcapStat(pcap_stat stat) { 26 | if (stat instanceof win_pcap_stat) { 27 | win_pcap_stat win_stat = (win_pcap_stat) stat; 28 | this.numPacketsReceived = win_stat.ps_recv & 0xFFFFFFFFL; 29 | this.numPacketsDropped = win_stat.ps_drop & 0xFFFFFFFFL; 30 | this.numPacketsDroppedByIf = win_stat.ps_ifdrop & 0xFFFFFFFFL; 31 | this.numPacketsCaptured = win_stat.bs_capt & 0xFFFFFFFFL; 32 | } else { 33 | this.numPacketsReceived = stat.ps_recv & 0xFFFFFFFFL; 34 | this.numPacketsDropped = stat.ps_drop & 0xFFFFFFFFL; 35 | this.numPacketsDroppedByIf = stat.ps_ifdrop & 0xFFFFFFFFL; 36 | this.numPacketsCaptured = 0; 37 | } 38 | } 39 | 40 | PcapStat(Pointer p, boolean isWinPcapStat) { 41 | this.numPacketsReceived = pcap_stat.getPsRecv(p) & 0xFFFFFFFFL; 42 | this.numPacketsDropped = pcap_stat.getPsDrop(p) & 0xFFFFFFFFL; 43 | this.numPacketsDroppedByIf = pcap_stat.getPsIfdrop(p) & 0xFFFFFFFFL; 44 | 45 | if (isWinPcapStat) { 46 | this.numPacketsCaptured = win_pcap_stat.getBsCapt(p) & 0xFFFFFFFFL; 47 | } else { 48 | this.numPacketsCaptured = 0; 49 | } 50 | } 51 | 52 | /** @return ps_recv */ 53 | public long getNumPacketsReceived() { 54 | return numPacketsReceived; 55 | } 56 | 57 | /** @return ps_drop */ 58 | public long getNumPacketsDropped() { 59 | return numPacketsDropped; 60 | } 61 | 62 | /** @return ps_ifdrop */ 63 | public long getNumPacketsDroppedByIf() { 64 | return numPacketsDroppedByIf; 65 | } 66 | 67 | /** @return bs_capt, which is valid only on Windows. */ 68 | public long getNumPacketsCaptured() { 69 | return numPacketsCaptured; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/core/RawPacketListener.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2015 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.core; 9 | 10 | /** 11 | * @author Kaito Yamada 12 | * @since pcap4j 1.4.0 13 | */ 14 | public interface RawPacketListener { 15 | 16 | /** @param packet packet */ 17 | public void gotPacket(byte[] packet); 18 | } 19 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/BuilderIterator.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import java.util.Iterator; 11 | import java.util.NoSuchElementException; 12 | import org.pcap4j.packet.Packet.Builder; 13 | 14 | /** 15 | * @author Kaito Yamada 16 | * @since pcap4j 0.9.9 17 | */ 18 | public final class BuilderIterator implements Iterator { 19 | 20 | private Builder next; 21 | private Builder previous = null; 22 | 23 | /** @param b b */ 24 | public BuilderIterator(Builder b) { 25 | this.next = b; 26 | } 27 | 28 | @Override 29 | public boolean hasNext() { 30 | return next != null; 31 | } 32 | 33 | @Override 34 | public Builder next() { 35 | if (!hasNext()) { 36 | throw new NoSuchElementException(); 37 | } 38 | 39 | previous = next; 40 | next = next.getPayloadBuilder(); 41 | 42 | return previous; 43 | } 44 | 45 | /** @throws UnsupportedOperationException always. */ 46 | @Override 47 | public void remove() { 48 | throw new UnsupportedOperationException(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/ChecksumBuilder.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | /** 11 | * @author Kaito Yamada 12 | * @since pcap4j 0.9.11 13 | * @param the type of object this builder builds. 14 | */ 15 | public interface ChecksumBuilder { 16 | 17 | /** 18 | * @param correctChecksumAtBuild correctChecksumAtBuild 19 | * @return ChecksumBuilder 20 | */ 21 | public ChecksumBuilder correctChecksumAtBuild(boolean correctChecksumAtBuild); 22 | 23 | /** @return a new object. */ 24 | public T build(); 25 | } 26 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/CompressedPacket.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.util.ByteArrays; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 1.4.0 15 | */ 16 | public final class CompressedPacket extends SimplePacket { 17 | 18 | /** */ 19 | private static final long serialVersionUID = 3129881252128550354L; 20 | 21 | /** 22 | * A static factory method. This method validates the arguments by {@link 23 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 24 | * 25 | * @param rawData rawData 26 | * @param offset offset 27 | * @param length length 28 | * @return a new CompressedPacket object. 29 | */ 30 | public static CompressedPacket newPacket(byte[] rawData, int offset, int length) { 31 | ByteArrays.validateBounds(rawData, offset, length); 32 | return new CompressedPacket(rawData, offset, length); 33 | } 34 | 35 | private CompressedPacket(byte[] rawData, int offset, int length) { 36 | super(rawData, offset, length); 37 | } 38 | 39 | private CompressedPacket(Builder builder) { 40 | super(builder); 41 | } 42 | 43 | @Override 44 | public Builder getBuilder() { 45 | return new Builder(this); 46 | } 47 | 48 | @Override 49 | protected String modifier() { 50 | return "Compressed "; 51 | } 52 | 53 | /** 54 | * @author Kaito Yamada 55 | * @since pcap4j 1.4.0 56 | */ 57 | public static final class Builder extends org.pcap4j.packet.SimplePacket.Builder { 58 | 59 | /** */ 60 | public Builder() {} 61 | 62 | private Builder(CompressedPacket packet) { 63 | super(packet); 64 | } 65 | 66 | /** 67 | * @param rawData rawData 68 | * @return this Builder object for method chaining. 69 | */ 70 | public Builder rawData(byte[] rawData) { 71 | setRawData(rawData); 72 | return this; 73 | } 74 | 75 | @Override 76 | public CompressedPacket build() { 77 | return new CompressedPacket(this); 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/Dot11Selector.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2016 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.packet.factory.PacketFactories; 11 | import org.pcap4j.packet.factory.PacketFactory; 12 | import org.pcap4j.packet.namednumber.Dot11FrameType; 13 | import org.pcap4j.util.ByteArrays; 14 | 15 | /** 16 | * @author Kaito Yamada 17 | * @since pcap4j 1.7.0 18 | */ 19 | public final class Dot11Selector extends AbstractPacket { 20 | 21 | /** */ 22 | private static final long serialVersionUID = -4770251478963995769L; 23 | 24 | /** 25 | * A static factory method. This method validates the arguments by {@link 26 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 27 | * 28 | * @param rawData rawData 29 | * @param offset offset 30 | * @param length length 31 | * @return a new Packet object representing an IEEE802.11 packet. 32 | * @throws IllegalRawDataException if parsing the raw data fails. 33 | */ 34 | public static Packet newPacket(byte[] rawData, int offset, int length) 35 | throws IllegalRawDataException { 36 | ByteArrays.validateBounds(rawData, offset, length); 37 | 38 | Dot11FrameControl ctrl = Dot11FrameControl.newInstance(rawData, offset, length); 39 | PacketFactory factory = 40 | PacketFactories.getFactory(Packet.class, Dot11FrameType.class); 41 | return factory.newInstance(rawData, offset, length, ctrl.getType()); 42 | } 43 | 44 | private Dot11Selector() { 45 | throw new AssertionError(); 46 | } 47 | 48 | @Override 49 | public Builder getBuilder() { 50 | throw new UnsupportedOperationException(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/EncryptedPacket.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.util.ByteArrays; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 1.4.0 15 | */ 16 | public final class EncryptedPacket extends SimplePacket { 17 | 18 | /** */ 19 | private static final long serialVersionUID = 1942694224438957128L; 20 | 21 | /** 22 | * A static factory method. This method validates the arguments by {@link 23 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 24 | * 25 | * @param rawData rawData 26 | * @param offset offset 27 | * @param length length 28 | * @return a new EncryptedPacket object. 29 | */ 30 | public static EncryptedPacket newPacket(byte[] rawData, int offset, int length) { 31 | ByteArrays.validateBounds(rawData, offset, length); 32 | return new EncryptedPacket(rawData, offset, length); 33 | } 34 | 35 | private EncryptedPacket(byte[] rawData, int offset, int length) { 36 | super(rawData, offset, length); 37 | } 38 | 39 | private EncryptedPacket(Builder builder) { 40 | super(builder); 41 | } 42 | 43 | @Override 44 | public Builder getBuilder() { 45 | return new Builder(this); 46 | } 47 | 48 | @Override 49 | protected String modifier() { 50 | return "Encrypted "; 51 | } 52 | 53 | /** 54 | * @author Kaito Yamada 55 | * @since pcap4j 1.4.0 56 | */ 57 | public static final class Builder extends org.pcap4j.packet.SimplePacket.Builder { 58 | 59 | /** */ 60 | public Builder() {} 61 | 62 | private Builder(EncryptedPacket packet) { 63 | super(packet); 64 | } 65 | 66 | /** 67 | * @param rawData rawData 68 | * @return this Builder object for method chaining. 69 | */ 70 | public Builder rawData(byte[] rawData) { 71 | setRawData(rawData); 72 | return this; 73 | } 74 | 75 | @Override 76 | public EncryptedPacket build() { 77 | return new EncryptedPacket(this); 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/FragmentedPacket.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.util.ByteArrays; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 0.9.11 15 | */ 16 | public final class FragmentedPacket extends SimplePacket { 17 | 18 | /** */ 19 | private static final long serialVersionUID = 8065880017691703511L; 20 | 21 | /** 22 | * A static factory method. This method validates the arguments by {@link 23 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 24 | * 25 | * @param rawData rawData 26 | * @param offset offset 27 | * @param length length 28 | * @return a new FragmentedPacket object. 29 | */ 30 | public static FragmentedPacket newPacket(byte[] rawData, int offset, int length) { 31 | ByteArrays.validateBounds(rawData, offset, length); 32 | return new FragmentedPacket(rawData, offset, length); 33 | } 34 | 35 | private FragmentedPacket(byte[] rawData, int offset, int length) { 36 | super(rawData, offset, length); 37 | } 38 | 39 | private FragmentedPacket(Builder builder) { 40 | super(builder); 41 | } 42 | 43 | @Override 44 | public Builder getBuilder() { 45 | return new Builder(this); 46 | } 47 | 48 | @Override 49 | protected String modifier() { 50 | return "Fragmented "; 51 | } 52 | 53 | /** 54 | * @author Kaito Yamada 55 | * @since pcap4j 0.9.11 56 | */ 57 | public static final class Builder extends org.pcap4j.packet.SimplePacket.Builder { 58 | 59 | /** */ 60 | public Builder() {} 61 | 62 | private Builder(FragmentedPacket packet) { 63 | super(packet); 64 | } 65 | 66 | /** 67 | * @param rawData rawData 68 | * @return this Builder object for method chaining. 69 | */ 70 | public Builder rawData(byte[] rawData) { 71 | setRawData(rawData); 72 | return this; 73 | } 74 | 75 | @Override 76 | public FragmentedPacket build() { 77 | return new FragmentedPacket(this); 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/GtpSelector.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2016 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.packet.GtpV1Packet.ProtocolType; 11 | import org.pcap4j.packet.factory.PacketFactories; 12 | import org.pcap4j.packet.namednumber.NotApplicable; 13 | import org.pcap4j.util.ByteArrays; 14 | 15 | /** 16 | * @author Kaito Yamada 17 | * @since pcap4j 1.6.6 18 | */ 19 | public final class GtpSelector extends AbstractPacket { 20 | 21 | /** */ 22 | private static final long serialVersionUID = 5081921978086270980L; 23 | 24 | /** 25 | * A static factory method. This method validates the arguments by {@link 26 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 27 | * 28 | * @param rawData rawData 29 | * @param offset offset 30 | * @param length length 31 | * @return a new Packet object representing an GTP (version x) packet. 32 | * @throws IllegalRawDataException if parsing the raw data fails. 33 | */ 34 | public static Packet newPacket(byte[] rawData, int offset, int length) 35 | throws IllegalRawDataException { 36 | ByteArrays.validateBounds(rawData, offset, length); 37 | 38 | int ver = (rawData[offset] >> 5) & 0x07; 39 | ProtocolType pt = ProtocolType.getInstance((rawData[offset] & 0x10) != 0); 40 | switch (ver) { 41 | case 1: 42 | switch (pt) { 43 | case GTP: 44 | return GtpV1Packet.newPacket(rawData, offset, length); 45 | case GTP_PRIME: 46 | default: 47 | return PacketFactories.getFactory(Packet.class, NotApplicable.class) 48 | .newInstance(rawData, offset, length, NotApplicable.UNKNOWN); 49 | } 50 | case 2: 51 | default: 52 | return PacketFactories.getFactory(Packet.class, NotApplicable.class) 53 | .newInstance(rawData, offset, length, NotApplicable.UNKNOWN); 54 | } 55 | } 56 | 57 | private GtpSelector() { 58 | throw new AssertionError(); 59 | } 60 | 61 | @Override 62 | public Builder getBuilder() { 63 | throw new UnsupportedOperationException(); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/GtpVersion.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2016 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | /** 11 | * @author Kaito Yamada 12 | * @since pcap4j 1.6.6 13 | */ 14 | public enum GtpVersion { 15 | 16 | /** v0 */ 17 | V0(0), 18 | 19 | /** v1 */ 20 | V1(1), 21 | 22 | /** v2 */ 23 | V2(2), 24 | 25 | /** v3 */ 26 | V3(3), 27 | 28 | /** v4 */ 29 | V4(4), 30 | 31 | /** v5 */ 32 | V5(5), 33 | 34 | /** v6 */ 35 | V6(6), 36 | 37 | /** v7 */ 38 | V7(7); 39 | 40 | private final int value; 41 | 42 | private GtpVersion(int value) { 43 | this.value = value; 44 | } 45 | 46 | /** 47 | * @param value value 48 | * @return a GtpVersion object. 49 | */ 50 | public static GtpVersion getInstance(int value) { 51 | for (GtpVersion ver : values()) { 52 | if (ver.value == value) { 53 | return ver; 54 | } 55 | } 56 | throw new IllegalArgumentException("Invalid value: " + value); 57 | } 58 | 59 | /** @return value */ 60 | public int getValue() { 61 | return value; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/IllegalRawDataException.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012-2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | /** 11 | * @author Kaito Yamada 12 | * @since pcap4j 0.9.11 13 | */ 14 | public final class IllegalRawDataException extends Exception { 15 | 16 | /** */ 17 | private static final long serialVersionUID = -6426401494142677707L; 18 | 19 | /** */ 20 | public IllegalRawDataException() { 21 | super(); 22 | } 23 | 24 | /** @param message message */ 25 | public IllegalRawDataException(String message) { 26 | super(message); 27 | } 28 | 29 | /** 30 | * @param message message 31 | * @param cause cause 32 | */ 33 | public IllegalRawDataException(String message, Throwable cause) { 34 | super(message, cause); 35 | } 36 | 37 | /** @param cause cause */ 38 | public IllegalRawDataException(Throwable cause) { 39 | super(cause); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/IpPacket.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2016 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import java.net.InetAddress; 11 | import org.pcap4j.packet.namednumber.IpNumber; 12 | import org.pcap4j.packet.namednumber.IpVersion; 13 | 14 | /** 15 | * The interface representing an IP packet. 16 | * 17 | * @author Kaito Yamada 18 | * @since pcap4j 1.7.0 19 | */ 20 | public interface IpPacket extends Packet { 21 | 22 | @Override 23 | public IpHeader getHeader(); 24 | 25 | /** 26 | * The interface representing an IP packet's header. 27 | * 28 | * @author Kaito Yamada 29 | * @since pcap4j 1.7.0 30 | */ 31 | public interface IpHeader extends Header { 32 | 33 | /** @return version */ 34 | public IpVersion getVersion(); 35 | 36 | /** @return an IpNumber object which indicates the protocol of the following header. */ 37 | public IpNumber getProtocol(); 38 | 39 | /** @return srcAddr */ 40 | public InetAddress getSrcAddr(); 41 | 42 | /** @return dstAddr */ 43 | public InetAddress getDstAddr(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/IpSelector.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014-2016 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.packet.factory.PacketFactories; 11 | import org.pcap4j.packet.factory.PacketFactory; 12 | import org.pcap4j.packet.namednumber.EtherType; 13 | import org.pcap4j.packet.namednumber.IpVersion; 14 | import org.pcap4j.packet.namednumber.NotApplicable; 15 | import org.pcap4j.util.ByteArrays; 16 | 17 | /** 18 | * @author Kaito Yamada 19 | * @since pcap4j 1.7.0 20 | */ 21 | public final class IpSelector extends AbstractPacket { 22 | 23 | /** */ 24 | private static final long serialVersionUID = -1; 25 | 26 | /** 27 | * A static factory method. This method validates the arguments by {@link 28 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 29 | * 30 | * @param rawData rawData 31 | * @param offset offset 32 | * @param length length 33 | * @return a new Packet object representing an IP (v4 or v6) packet. 34 | * @throws IllegalRawDataException if parsing the raw data fails. 35 | */ 36 | public static Packet newPacket(byte[] rawData, int offset, int length) 37 | throws IllegalRawDataException { 38 | ByteArrays.validateBounds(rawData, offset, length); 39 | 40 | int ipVersion = (rawData[offset] >> 4) & 0x0f; 41 | PacketFactory factory = 42 | PacketFactories.getFactory(Packet.class, EtherType.class); 43 | if (ipVersion == IpVersion.IPV4.value().intValue()) { 44 | return factory.newInstance(rawData, offset, length, EtherType.IPV4); 45 | } 46 | if (ipVersion == IpVersion.IPV6.value().intValue()) { 47 | return factory.newInstance(rawData, offset, length, EtherType.IPV6); 48 | } else { 49 | return PacketFactories.getFactory(Packet.class, NotApplicable.class) 50 | .newInstance(rawData, offset, length, NotApplicable.UNKNOWN); 51 | } 52 | } 53 | 54 | private IpSelector() { 55 | throw new AssertionError(); 56 | } 57 | 58 | @Override 59 | public Builder getBuilder() { 60 | throw new UnsupportedOperationException(); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/IpV6SimpleFlowLabel.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.packet.IpV6Packet.IpV6FlowLabel; 11 | import org.pcap4j.util.ByteArrays; 12 | 13 | /** 14 | * @author Kaito Yamada 15 | * @since pcap4j 0.9.1 16 | */ 17 | public final class IpV6SimpleFlowLabel implements IpV6FlowLabel { 18 | 19 | /** */ 20 | private static final long serialVersionUID = -5076935770045999373L; 21 | 22 | private final int value; 23 | 24 | /** 25 | * @param value value 26 | * @return a new IpV6SimpleFlowLabel object. 27 | */ 28 | public static IpV6SimpleFlowLabel newInstance(int value) { 29 | return new IpV6SimpleFlowLabel(value); 30 | } 31 | 32 | private IpV6SimpleFlowLabel(int value) { 33 | this.value = value & 0x000FFFFF; 34 | } 35 | 36 | @Override 37 | public int value() { 38 | return value; 39 | } 40 | 41 | @Override 42 | public String toString() { 43 | return "0x" + ByteArrays.toHexString(value, "").substring(3); 44 | } 45 | 46 | @Override 47 | public boolean equals(Object obj) { 48 | if (obj == this) { 49 | return true; 50 | } 51 | if (!this.getClass().isInstance(obj)) { 52 | return false; 53 | } 54 | return (getClass().cast(obj)).value() == this.value; 55 | } 56 | 57 | @Override 58 | public int hashCode() { 59 | return value; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/IpV6SimpleTrafficClass.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.packet.IpV6Packet.IpV6TrafficClass; 11 | import org.pcap4j.util.ByteArrays; 12 | 13 | /** 14 | * @author Kaito Yamada 15 | * @since pcap4j 0.9.1 16 | */ 17 | public final class IpV6SimpleTrafficClass implements IpV6TrafficClass { 18 | 19 | /** */ 20 | private static final long serialVersionUID = -5076935770045999373L; 21 | 22 | private final byte value; 23 | 24 | /** 25 | * @param value value 26 | * @return a new IpV6SimpleTrafficClass object. 27 | */ 28 | public static IpV6SimpleTrafficClass newInstance(byte value) { 29 | return new IpV6SimpleTrafficClass(value); 30 | } 31 | 32 | private IpV6SimpleTrafficClass(byte value) { 33 | this.value = value; 34 | } 35 | 36 | public byte value() { 37 | return value; 38 | } 39 | 40 | @Override 41 | public String toString() { 42 | return "0x" + ByteArrays.toHexString(value, ""); 43 | } 44 | 45 | @Override 46 | public boolean equals(Object obj) { 47 | if (obj == this) { 48 | return true; 49 | } 50 | if (!this.getClass().isInstance(obj)) { 51 | return false; 52 | } 53 | return (getClass().cast(obj)).value() == this.value; 54 | } 55 | 56 | @Override 57 | public int hashCode() { 58 | return value; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/LengthBuilder.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | /** 11 | * @author Kaito Yamada 12 | * @since pcap4j 0.9.11 13 | * @param tye type of object this builder builds. 14 | */ 15 | public interface LengthBuilder { 16 | 17 | /** 18 | * @param correctLengthAtBuild correctLengthAtBuild 19 | * @return LengthBuilder 20 | */ 21 | public LengthBuilder correctLengthAtBuild(boolean correctLengthAtBuild); 22 | 23 | /** @return a new object. */ 24 | public T build(); 25 | } 26 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/PacketIterator.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import java.util.Iterator; 11 | import java.util.NoSuchElementException; 12 | 13 | /** 14 | * @author Kaito Yamada 15 | * @since pcap4j 0.9.1 16 | */ 17 | public final class PacketIterator implements Iterator { 18 | 19 | private Packet next; 20 | private Packet previous = null; 21 | 22 | /** @param p p */ 23 | public PacketIterator(Packet p) { 24 | this.next = p; 25 | } 26 | 27 | @Override 28 | public boolean hasNext() { 29 | return next != null; 30 | } 31 | 32 | @Override 33 | public Packet next() { 34 | if (!hasNext()) { 35 | throw new NoSuchElementException(); 36 | } 37 | 38 | previous = next; 39 | next = next.getPayload(); 40 | 41 | return previous; 42 | } 43 | 44 | /** @throws UnsupportedOperationException always. */ 45 | @Override 46 | public void remove() { 47 | throw new UnsupportedOperationException(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/PppSelector.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2015 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.packet.factory.PacketFactories; 11 | import org.pcap4j.packet.factory.PacketFactory; 12 | import org.pcap4j.packet.namednumber.DataLinkType; 13 | import org.pcap4j.util.ByteArrays; 14 | 15 | /** 16 | * @author Kaito Yamada 17 | * @since pcap4j 1.4.0 18 | */ 19 | public final class PppSelector extends AbstractPacket { 20 | 21 | /** */ 22 | private static final long serialVersionUID = -1; 23 | 24 | /** 25 | * A static factory method. This method validates the arguments by {@link 26 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 27 | * 28 | * @param rawData rawData 29 | * @param offset offset 30 | * @param length length 31 | * @return a new Packet object representing a PPP packet. 32 | * @throws IllegalRawDataException if parsing the raw data fails. 33 | */ 34 | public static Packet newPacket(byte[] rawData, int offset, int length) 35 | throws IllegalRawDataException { 36 | ByteArrays.validateBounds(rawData, offset, length); 37 | 38 | byte firstByte = rawData[offset]; 39 | PacketFactory factory = 40 | PacketFactories.getFactory(Packet.class, DataLinkType.class); 41 | if (firstByte == (byte) 0xFF) { 42 | return factory.newInstance(rawData, offset, length, DataLinkType.PPP_SERIAL); 43 | } else { 44 | return PppPacket.newPacket(rawData, offset, length); 45 | } 46 | } 47 | 48 | private PppSelector() { 49 | throw new AssertionError(); 50 | } 51 | 52 | @Override 53 | public Builder getBuilder() { 54 | throw new UnsupportedOperationException(); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/RadiotapFecType.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2016 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | /** 11 | * @author Kaito Yamada 12 | * @since pcap4j 1.6.5 13 | */ 14 | public enum RadiotapFecType { 15 | 16 | /** BCC */ 17 | BCC(0), 18 | 19 | /** LDPC */ 20 | LDPC(1); 21 | 22 | private final int value; 23 | 24 | private RadiotapFecType(int value) { 25 | this.value = value; 26 | } 27 | 28 | /** @return value */ 29 | public int getValue() { 30 | return value; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/SimpleBuilder.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.packet.AbstractPacket.AbstractBuilder; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 0.9.11 15 | */ 16 | public final class SimpleBuilder extends AbstractBuilder { 17 | 18 | private Packet packet; 19 | 20 | /** */ 21 | public SimpleBuilder() {} 22 | 23 | /** @param packet packet */ 24 | public SimpleBuilder(Packet packet) { 25 | this.packet = packet; 26 | } 27 | 28 | /** 29 | * @param packet packet 30 | * @return SimpleBuilder 31 | */ 32 | public SimpleBuilder packet(Packet packet) { 33 | this.packet = packet; 34 | return this; 35 | } 36 | 37 | @Override 38 | public Packet build() { 39 | return packet; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/SshPacket.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.util.ByteArrays; 11 | import org.slf4j.Logger; 12 | import org.slf4j.LoggerFactory; 13 | 14 | /** 15 | * @author Kaito Yamada 16 | * @since pcap4j 1.2.0 17 | */ 18 | public final class SshPacket extends AbstractPacket { 19 | 20 | /** */ 21 | private static final long serialVersionUID = 1L; 22 | 23 | private static final Logger logger = LoggerFactory.getLogger(SshPacket.class); 24 | 25 | /** 26 | * A static factory method. This method validates the arguments by {@link 27 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 28 | * 29 | * @param rawData rawData 30 | * @param offset offset 31 | * @param length length 32 | * @return a new Packet object representing an SSH packet. 33 | * @throws IllegalRawDataException if parsing the raw data fails. 34 | */ 35 | public static Packet newPacket(byte[] rawData, int offset, int length) 36 | throws IllegalRawDataException { 37 | // This will be done by actual packet classes. 38 | // ByteArrays.validateBounds(rawData, offset, length); 39 | try { 40 | return Ssh2VersionExchangePacket.newPacket(rawData, offset, length); 41 | } catch (IllegalRawDataException e) { 42 | logger.debug("rawData seems not SSH2 version exchange packet.", e); 43 | return Ssh2BinaryPacket.newPacket(rawData, offset, length); 44 | } 45 | } 46 | 47 | private SshPacket() { 48 | throw new AssertionError(); 49 | } 50 | 51 | @Override 52 | public Builder getBuilder() { 53 | throw new UnsupportedOperationException(); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/TransportPacket.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.packet.namednumber.Port; 11 | 12 | /** 13 | * Transport layer packet (e.g. TCP and UDP) 14 | * 15 | * @author Ferran Altimiras 16 | * @since pcap4j 1.7.5 17 | */ 18 | public interface TransportPacket extends Packet { 19 | 20 | @Override 21 | public TransportHeader getHeader(); 22 | 23 | /** 24 | * The interface representing the Transport layer packet's header. 25 | * 26 | * @author Ferran Altimiras 27 | * @since pcap4j 1.7.5 28 | */ 29 | public interface TransportHeader extends Header { 30 | 31 | /** @return Source port */ 32 | public Port getSrcPort(); 33 | 34 | /** @return Destination port */ 35 | public Port getDstPort(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/UnknownPacket.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet; 9 | 10 | import org.pcap4j.util.ByteArrays; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 0.9.1 15 | */ 16 | public final class UnknownPacket extends SimplePacket { 17 | 18 | /** */ 19 | private static final long serialVersionUID = 8651511568344022477L; 20 | 21 | /** 22 | * A static factory method. This method validates the arguments by {@link 23 | * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. 24 | * 25 | * @param rawData rawData 26 | * @param offset offset 27 | * @param length length 28 | * @return a new UnknownPacket object. 29 | */ 30 | public static UnknownPacket newPacket(byte[] rawData, int offset, int length) { 31 | ByteArrays.validateBounds(rawData, offset, length); 32 | return new UnknownPacket(rawData, offset, length); 33 | } 34 | 35 | private UnknownPacket(byte[] rawData, int offset, int length) { 36 | super(rawData, offset, length); 37 | } 38 | 39 | private UnknownPacket(Builder builder) { 40 | super(builder); 41 | } 42 | 43 | @Override 44 | public Builder getBuilder() { 45 | return new Builder(this); 46 | } 47 | 48 | @Override 49 | protected String modifier() { 50 | return ""; 51 | } 52 | 53 | /** 54 | * @author Kaito Yamada 55 | * @since pcap4j 0.9.1 56 | */ 57 | public static final class Builder extends org.pcap4j.packet.SimplePacket.Builder { 58 | 59 | /** */ 60 | public Builder() {} 61 | 62 | private Builder(UnknownPacket packet) { 63 | super(packet); 64 | } 65 | 66 | /** 67 | * @param rawData rawData 68 | * @return this Builder object for method chaining. 69 | */ 70 | public Builder rawData(byte[] rawData) { 71 | setRawData(rawData); 72 | return this; 73 | } 74 | 75 | @Override 76 | public UnknownPacket build() { 77 | return new UnknownPacket(this); 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/constant/Ssh2CompressionAlgorithmName.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.constant; 9 | 10 | /** 11 | * Compression Algorithm Name 12 | * https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-20 13 | * 14 | * @author Kaito Yamada 15 | * @since pcap4j 1.0.1 16 | */ 17 | public final class Ssh2CompressionAlgorithmName { 18 | 19 | private Ssh2CompressionAlgorithmName() { 20 | throw new AssertionError(); 21 | } 22 | 23 | /** */ 24 | public static final String NONE = "none"; 25 | 26 | /** */ 27 | public static final String ZLIB = "zlib"; 28 | } 29 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/constant/Ssh2KexAlgorithmName.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.constant; 9 | 10 | /** 11 | * Key Exchange Algorithm Names 12 | * https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-16 13 | * 14 | * @author Kaito Yamada 15 | * @since pcap4j 1.0.1 16 | */ 17 | public final class Ssh2KexAlgorithmName { 18 | 19 | private Ssh2KexAlgorithmName() { 20 | throw new AssertionError(); 21 | } 22 | 23 | /** */ 24 | public static final String DIFFIE_HELLMAN_GROUP_EXCHANGE_SHA1 = 25 | "diffie-hellman-group-exchange-sha1"; 26 | 27 | /** */ 28 | public static final String DIFFIE_HELLMAN_GROUP_EXCHANGE_SHA256 = 29 | "diffie-hellman-group-exchange-sha256"; 30 | 31 | /** */ 32 | public static final String DIFFIE_HELLMAN_GROUP1_SHA1 = "diffie-hellman-group1-sha1"; 33 | 34 | /** */ 35 | public static final String DIFFIE_HELLMAN_GROUP14_SHA1 = "diffie-hellman-group14-sha1"; 36 | 37 | /** */ 38 | public static final String ECDH_SHA2_PREFIX = "ecdh-sha2-"; 39 | 40 | /** */ 41 | public static final String ECMQV_SHA2 = "ecmqv-sha2"; 42 | 43 | /** */ 44 | public static final String GSS_GROUP1_SHA1_PREFIX = "gss-group1-sha1-"; 45 | 46 | /** */ 47 | public static final String GSS_GROUP14_SHA1_PREFIX = "gss-group14-sha1-"; 48 | 49 | /** */ 50 | public static final String GSS_GEX_SHA1_PREFIX = "gss-gex-sha1-"; 51 | 52 | /** */ 53 | public static final String GSS_PREFIX = "gss-"; 54 | 55 | /** */ 56 | public static final String RSA1024_SHA1 = "rsa1024-sha1"; 57 | 58 | /** */ 59 | public static final String RSA2048_SHA256 = "rsa2048-sha256"; 60 | } 61 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/constant/Ssh2MacAlgorithmName.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.constant; 9 | 10 | /** 11 | * MAC Algorithm Name 12 | * https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-18 13 | * 14 | * @author Kaito Yamada 15 | * @since pcap4j 1.0.1 16 | */ 17 | public final class Ssh2MacAlgorithmName { 18 | 19 | private Ssh2MacAlgorithmName() { 20 | throw new AssertionError(); 21 | } 22 | 23 | /** */ 24 | public static final String HMAC_SHA1 = "hmac-sha1"; 25 | 26 | /** */ 27 | public static final String HMAC_SHA1_96 = "hmac-sha1-96"; 28 | 29 | /** */ 30 | public static final String HMAC_MD5 = "hmac-md5"; 31 | 32 | /** */ 33 | public static final String HMAC_MD5_96 = "hmac-md5-96"; 34 | 35 | /** */ 36 | public static final String NONE = "none"; 37 | 38 | /** */ 39 | public static final String AEAD_AES_128_GCM = "AEAD_AES_128_GCM"; 40 | 41 | /** */ 42 | public static final String AEAD_AES_256_GCM = "AEAD_AES_256_GCM"; 43 | 44 | /** */ 45 | public static final String HMAC_SHA2_256 = "hmac-sha2-256"; 46 | 47 | /** */ 48 | public static final String HMAC_SHA2_512 = "hmac-sha2-512"; 49 | } 50 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/constant/Ssh2PublicKeyAlgorithmName.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.constant; 9 | 10 | /** 11 | * Public Key Algorithm Name 12 | * https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-19 13 | * 14 | * @author Kaito Yamada 15 | * @since pcap4j 1.0.1 16 | */ 17 | public final class Ssh2PublicKeyAlgorithmName { 18 | 19 | private Ssh2PublicKeyAlgorithmName() { 20 | throw new AssertionError(); 21 | } 22 | 23 | /** */ 24 | public static final String SSH_DSS = "ssh-dss"; 25 | 26 | /** */ 27 | public static final String SSH_RSA = "ssh-rsa"; 28 | 29 | /** */ 30 | public static final String SPKI_SIGN_RSA = "spki-sign-rsa"; 31 | 32 | /** */ 33 | public static final String SPKI_SIGN_DSS = "spki-sign-dss"; 34 | 35 | /** */ 36 | public static final String PGP_SIGN_RSA = "pgp-sign-rsa"; 37 | 38 | /** */ 39 | public static final String PGP_SIGN_DSS = "pgp-sign-dss"; 40 | 41 | /** */ 42 | public static final String NULL = "null"; 43 | 44 | /** */ 45 | public static final String ECDSA_SHA2_PREFIX = "ecdsa-sha2-"; 46 | 47 | /** */ 48 | public static final String X509V3_SSH_DSS = "x509v3-ssh-dss"; 49 | 50 | /** */ 51 | public static final String X509V3_SSH_RSA = "x509v3-ssh-rsa"; 52 | 53 | /** */ 54 | public static final String X509V3_RSA2048_SHA256 = "x509v3-rsa2048-sha256"; 55 | 56 | /** */ 57 | public static final String X509V3_ECDSA_SHA2_PREFIX = "x509v3-ecdsa-sha2-"; 58 | } 59 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/factory/PacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012-2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory; 9 | 10 | import org.pcap4j.packet.namednumber.NamedNumber; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 0.9.11 15 | * @param target 16 | * @param number 17 | */ 18 | public interface PacketFactory> { 19 | 20 | /** 21 | * @param rawData rawData 22 | * @param offset offset 23 | * @param length length 24 | * @param number number 25 | * @return a new data object. 26 | */ 27 | public T newInstance(byte[] rawData, int offset, int length, N number); 28 | 29 | /** 30 | * @param rawData rawData 31 | * @param offset offset 32 | * @param length length 33 | * @return a new data object. 34 | */ 35 | public T newInstance(byte[] rawData, int offset, int length); 36 | 37 | /** 38 | * @param number number 39 | * @return a {@link java.lang.Class Class} object this factory instantiates by {@link 40 | * #newInstance(byte[], int, int, NamedNumber)} with the number argument. 41 | */ 42 | public Class getTargetClass(N number); 43 | 44 | /** 45 | * @return a {@link java.lang.Class Class} object this factory instantiates by {@link 46 | * #newInstance(byte[], int, int)}. 47 | */ 48 | public Class getTargetClass(); 49 | } 50 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/factory/PacketFactoryBinder.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory; 9 | 10 | import org.pcap4j.packet.namednumber.NamedNumber; 11 | 12 | /** 13 | * Pcap4J modules can provide a factory to build new packets as they are received.
14 | * The implementing modules must also provide a {@link PacketFactoryBinderProvider} 15 | * 16 | * @author Jordan Dubie 17 | * @since pcap4j 1.8.0 18 | */ 19 | public interface PacketFactoryBinder { 20 | /** 21 | * Provides a {@link PacketFactory} to build the received packets. 22 | * 23 | * @param targetClass targetClass 24 | * @param numberClass numberClass 25 | * @param the type of object the factory method returns. 26 | * @param the type of object that is given to the factory method. 27 | * @return the factory 28 | */ 29 | public > PacketFactory getPacketFactory( 30 | Class targetClass, Class numberClass); 31 | } 32 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/factory/PacketFactoryBinderProvider.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory; 9 | 10 | /** 11 | * Provides an instance of {@link PacketFactoryBinder} 12 | * 13 | *

Implementing modules must declare themselves to the core module by: 14 | * 15 | *

    16 | *
  • creating the file 17 | * src/main/resources/META-INF/services/org.pcap4j.packet.factory.PacketFactoryBinderProvider 18 | *
  • adding a line in the file '<package>.<className>' for the name of the class 19 | * implementing this {@link PacketFactoryBinderProvider} 20 | *
21 | * 22 | *

See {@link java.util.ServiceLoader} for more information. 23 | * 24 | * @author Jordan Dubie 25 | * @since pcap4j 1.8.0 26 | */ 27 | public interface PacketFactoryBinderProvider { 28 | /** 29 | * The instance of the {@link PacketFactoryBinder} to use to build the packets. 30 | * 31 | * @return a {@link PacketFactoryBinder} 32 | */ 33 | public PacketFactoryBinder getBinder(); 34 | } 35 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/factory/SimplePacketFactoryBinder.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013-2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory; 9 | 10 | import org.pcap4j.packet.Packet; 11 | import org.pcap4j.packet.namednumber.NamedNumber; 12 | 13 | /** 14 | * @author Kaito Yamada 15 | * @since pcap4j 0.9.16 16 | */ 17 | final class SimplePacketFactoryBinder { 18 | 19 | private static final SimplePacketFactoryBinder INSTANCE = new SimplePacketFactoryBinder(); 20 | 21 | private SimplePacketFactoryBinder() {} 22 | 23 | public static SimplePacketFactoryBinder getInstance() { 24 | return INSTANCE; 25 | } 26 | 27 | @SuppressWarnings("unchecked") 28 | public > PacketFactory getPacketFactory( 29 | Class targetClass, Class numberClass) { 30 | if (Packet.class.isAssignableFrom(targetClass)) { 31 | return (PacketFactory) StaticUnknownPacketFactory.getInstance(); 32 | } else { 33 | StringBuilder sb = new StringBuilder(100); 34 | sb.append("targetClass: ").append(targetClass).append(" numberClass: ").append(numberClass); 35 | throw new IllegalArgumentException(sb.toString()); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/factory/StaticUnknownPacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012-2014 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory; 9 | 10 | import org.pcap4j.packet.Packet; 11 | import org.pcap4j.packet.UnknownPacket; 12 | import org.pcap4j.packet.namednumber.NamedNumber; 13 | 14 | /** 15 | * @author Kaito Yamada 16 | * @since pcap4j 0.9.14 17 | */ 18 | public final class StaticUnknownPacketFactory implements PacketFactory> { 19 | 20 | private static final StaticUnknownPacketFactory INSTANCE = new StaticUnknownPacketFactory(); 21 | 22 | private StaticUnknownPacketFactory() {}; 23 | 24 | /** @return the singleton instance of StaticUnknownPacketFactory. */ 25 | public static StaticUnknownPacketFactory getInstance() { 26 | return INSTANCE; 27 | } 28 | 29 | public Packet newInstance(byte[] rawData, int offset, int length, NamedNumber number) { 30 | return newInstance(rawData, offset, length); 31 | } 32 | 33 | public Packet newInstance(byte[] rawData, int offset, int length) { 34 | return UnknownPacket.newPacket(rawData, offset, length); 35 | } 36 | 37 | @Override 38 | public Class getTargetClass(NamedNumber number) { 39 | return getTargetClass(); 40 | } 41 | 42 | @Override 43 | public Class getTargetClass() { 44 | return UnknownPacket.class; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/namednumber/IpV4SecurityOptionCompartments.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2015 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.namednumber; 9 | 10 | import java.util.HashMap; 11 | import java.util.Map; 12 | import org.pcap4j.util.ByteArrays; 13 | 14 | /** 15 | * Compartments of IPv4 Security Option 16 | * 17 | * @see RFC 791 18 | * @author Kaito Yamada 19 | * @since pcap4j 0.9.11 20 | */ 21 | public final class IpV4SecurityOptionCompartments 22 | extends NamedNumber { 23 | 24 | /** */ 25 | private static final long serialVersionUID = -420949071267484565L; 26 | 27 | /** not compartmented: 0x0000 */ 28 | public static final IpV4SecurityOptionCompartments NOT_COMPARTMENTED = 29 | new IpV4SecurityOptionCompartments((short) 0x0000, "not compartmented"); 30 | 31 | private static final Map registry = 32 | new HashMap(); 33 | 34 | static { 35 | registry.put(NOT_COMPARTMENTED.value(), NOT_COMPARTMENTED); 36 | } 37 | 38 | /** 39 | * @param value value 40 | * @param name name 41 | */ 42 | public IpV4SecurityOptionCompartments(Short value, String name) { 43 | super(value, name); 44 | } 45 | 46 | /** 47 | * @param value value 48 | * @return a IpV4SecurityOptionCompartments object. 49 | */ 50 | public static IpV4SecurityOptionCompartments getInstance(Short value) { 51 | if (registry.containsKey(value)) { 52 | return registry.get(value); 53 | } else { 54 | return new IpV4SecurityOptionCompartments(value, "unknown"); 55 | } 56 | } 57 | 58 | /** 59 | * @param number number 60 | * @return a IpV4SecurityOptionCompartments object. 61 | */ 62 | public static IpV4SecurityOptionCompartments register(IpV4SecurityOptionCompartments number) { 63 | return registry.put(number.value(), number); 64 | } 65 | 66 | @Override 67 | public String valueAsString() { 68 | return "0x" + ByteArrays.toHexString(value(), ""); 69 | } 70 | 71 | @Override 72 | public int compareTo(IpV4SecurityOptionCompartments o) { 73 | return value().compareTo(o.value()); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/namednumber/IpV4SecurityOptionHandlingRestrictions.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2011-2015 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.namednumber; 9 | 10 | import java.util.HashMap; 11 | import java.util.Map; 12 | import org.pcap4j.util.ByteArrays; 13 | 14 | /** 15 | * Handling Restrictions of IPv4 Security Option 16 | * 17 | * @see RFC 791 18 | * @author Kaito Yamada 19 | * @since pcap4j 0.9.11 20 | */ 21 | public final class IpV4SecurityOptionHandlingRestrictions 22 | extends NamedNumber { 23 | 24 | /** */ 25 | private static final long serialVersionUID = 3041825811304706489L; 26 | 27 | private static final Map registry = 28 | new HashMap(); 29 | 30 | static { 31 | } 32 | 33 | /** 34 | * @param value value 35 | * @param name name 36 | */ 37 | public IpV4SecurityOptionHandlingRestrictions(Short value, String name) { 38 | super(value, name); 39 | } 40 | 41 | /** 42 | * @param value value 43 | * @return a IpV4SecurityOptionHandlingRestrictions object. 44 | */ 45 | public static IpV4SecurityOptionHandlingRestrictions getInstance(Short value) { 46 | if (registry.containsKey(value)) { 47 | return registry.get(value); 48 | } else { 49 | return new IpV4SecurityOptionHandlingRestrictions(value, "unknown"); 50 | } 51 | } 52 | 53 | /** 54 | * @param number number 55 | * @return a IpV4SecurityOptionHandlingRestrictions object. 56 | */ 57 | public static IpV4SecurityOptionHandlingRestrictions register( 58 | IpV4SecurityOptionHandlingRestrictions number) { 59 | return registry.put(number.value(), number); 60 | } 61 | 62 | @Override 63 | public String valueAsString() { 64 | return "0x" + ByteArrays.toHexString(value(), ""); 65 | } 66 | 67 | @Override 68 | public int compareTo(IpV4SecurityOptionHandlingRestrictions o) { 69 | return value().compareTo(o.value()); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/namednumber/NotApplicable.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013-2015 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.namednumber; 9 | 10 | /** 11 | * N/A 12 | * 13 | * @author Kaito Yamada 14 | * @since pcap4j 0.9.16 15 | */ 16 | public final class NotApplicable extends NamedNumber { 17 | 18 | /** */ 19 | private static final long serialVersionUID = -1260181531930282735L; 20 | 21 | /** Unknown: 0 */ 22 | public static final NotApplicable UNKNOWN = new NotApplicable((byte) 0, "Unknown"); 23 | 24 | /** Fragmented: 1 */ 25 | public static final NotApplicable FRAGMENTED = new NotApplicable((byte) 1, "Fragmented"); 26 | 27 | /** Compressed: 2 */ 28 | public static final NotApplicable COMPRESSED = new NotApplicable((byte) 2, "Compressed"); 29 | 30 | /** Encrypted: 3 */ 31 | public static final NotApplicable ENCRYPTED = new NotApplicable((byte) 3, "Encrypted"); 32 | 33 | /** Unknown IPv6 Extension: 4 */ 34 | public static final NotApplicable UNKNOWN_IP_V6_EXTENSION = 35 | new NotApplicable((byte) 4, "Unknown IPv6 Extension"); 36 | 37 | /** 38 | * @param value value 39 | * @param name name 40 | */ 41 | private NotApplicable(Byte value, String name) { 42 | super(value, name); 43 | } 44 | 45 | @Override 46 | public int compareTo(NotApplicable o) { 47 | return value().compareTo(o.value()); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/namednumber/Port.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.namednumber; 9 | 10 | /** 11 | * Transport layer Port 12 | * 13 | * @author Ferran Altimiras 14 | * @since pcap4j 1.7.5 15 | */ 16 | public abstract class Port extends NamedNumber { 17 | 18 | /** 19 | * @param value value 20 | * @param name name 21 | */ 22 | public Port(Short value, String name) { 23 | super(value, name); 24 | } 25 | 26 | /** @return the value of this object as an int. */ 27 | public int valueAsInt() { 28 | return 0xFFFF & value(); 29 | } 30 | 31 | @Override 32 | public String valueAsString() { 33 | return String.valueOf(valueAsInt()); 34 | } 35 | 36 | @Override 37 | public int compareTo(Port o) { 38 | return value().compareTo(o.value()); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/packet/packet.properties: -------------------------------------------------------------------------------- 1 | ############## 2 | ## checksum ## 3 | ############## 4 | #org.pcap4j.packet.icmpV4.calcChecksumAtBuild = true 5 | #org.pcap4j.packet.ipV4.calcChecksumAtBuild = true 6 | #org.pcap4j.packet.tcpV4.calcChecksumAtBuild = true 7 | #org.pcap4j.packet.udpV4.calcChecksumAtBuild = true 8 | #org.pcap4j.packet.tcpV6.calcChecksumAtBuild = true 9 | # Because checksum calculation is necessary to UDP over IPv6 10 | # it's not recommended to set false to this property. 11 | #org.pcap4j.packet.udpV6.calcChecksumAtBuild = true 12 | #org.pcap4j.packet.icmpV6.calcChecksumAtBuild = true 13 | #org.pcap4j.packet.sctp.calcChecksumByAdler32 = false 14 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/pcap4j.properties: -------------------------------------------------------------------------------- 1 | #org.pcap4j.af.inet = 2 2 | #org.pcap4j.af.inet6 = 30 3 | #org.pcap4j.af.packet = 17 4 | #org.pcap4j.af.link = 18 5 | #org.pcap4j.dlt.raw = 12 6 | 7 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/util/IcmpV4Helper.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.util; 9 | 10 | import org.pcap4j.packet.Packet; 11 | 12 | /** 13 | * @author Kaito Yamada 14 | * @since pcap4j 0.9.11 15 | */ 16 | public final class IcmpV4Helper { 17 | 18 | private IcmpV4Helper() { 19 | throw new AssertionError(); 20 | } 21 | 22 | /** 23 | * @param packet an IPv4 Packet 24 | * @return a new Packet object. 25 | */ 26 | public static Packet makePacketForInvokingPacketField(Packet packet) { 27 | if (packet == null || packet.getHeader() == null || packet.getPayload() == null) { 28 | StringBuilder sb = new StringBuilder(); 29 | sb.append("packet: ") 30 | .append(packet) 31 | .append(" packet.getHeader(): ") 32 | .append(packet.getHeader()) 33 | .append(" packet.getPayload(): ") 34 | .append(packet.getPayload()); 35 | throw new NullPointerException(sb.toString()); 36 | } 37 | 38 | return IcmpV6Helper.makePacketForInvokingPacketField(packet, 8 + packet.getHeader().length()); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/util/Inet4NetworkAddress.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.util; 9 | 10 | import java.io.Serializable; 11 | import java.net.Inet4Address; 12 | 13 | /** 14 | * @author Kaito Yamada 15 | * @since pcap4j 0.9.15 16 | */ 17 | public final class Inet4NetworkAddress implements Serializable { 18 | 19 | /** */ 20 | private static final long serialVersionUID = -8599700451783666420L; 21 | 22 | private final Inet4Address networkAddress; 23 | private final Inet4Address mask; 24 | 25 | /** 26 | * @param networkAddress networkAddress 27 | * @param mask mask 28 | */ 29 | public Inet4NetworkAddress(Inet4Address networkAddress, Inet4Address mask) { 30 | this.networkAddress = networkAddress; 31 | this.mask = mask; 32 | } 33 | 34 | /** @return networkAddress */ 35 | public Inet4Address getNetworkAddress() { 36 | return networkAddress; 37 | } 38 | 39 | /** @return mask */ 40 | public Inet4Address getMask() { 41 | return mask; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /pcap4j-core/src/main/java/org/pcap4j/util/LazyValue.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.util; 9 | 10 | import java.io.IOException; 11 | import java.io.ObjectOutputStream; 12 | import java.io.Serializable; 13 | 14 | /** 15 | * @author Kaito Yamada 16 | * @since pcap4j 0.9.6 17 | * @param the type of value this class returns. 18 | */ 19 | public final class LazyValue implements Serializable { 20 | 21 | /** */ 22 | private static final long serialVersionUID = 1379102837076225509L; 23 | 24 | private final transient BuildValueCommand command; 25 | private final transient Object thisLock = new Object(); 26 | 27 | private volatile T1 value = null; 28 | 29 | /** @param command command */ 30 | public LazyValue(BuildValueCommand command) { 31 | this.command = command; 32 | } 33 | 34 | /** @return value */ 35 | public T1 getValue() { 36 | T1 result = value; 37 | if (result == null) { 38 | synchronized (thisLock) { 39 | result = value; 40 | if (result == null) { 41 | value = command.buildValue(); 42 | } 43 | } 44 | } 45 | return value; 46 | } 47 | 48 | private void writeObject(ObjectOutputStream out) throws IOException { 49 | getValue(); 50 | if (value == null) { 51 | throw new AssertionError(); 52 | } 53 | out.defaultWriteObject(); 54 | } 55 | 56 | /** 57 | * @author Kaito Yamada 58 | * @since pcap4j 0.9.6 59 | * @param the type of value to build. 60 | */ 61 | public interface BuildValueCommand { 62 | 63 | /** @return value */ 64 | public T2 buildValue(); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /pcap4j-core/src/test/java/org/pcap4j/Pcap4jPropertiesLoaderTest.java: -------------------------------------------------------------------------------- 1 | package org.pcap4j; 2 | 3 | import static org.junit.Assert.assertEquals; 4 | import static org.junit.Assert.assertNotNull; 5 | 6 | import com.sun.jna.Platform; 7 | import org.junit.Before; 8 | import org.junit.Test; 9 | 10 | @SuppressWarnings("javadoc") 11 | public class Pcap4jPropertiesLoaderTest { 12 | 13 | private Pcap4jPropertiesLoader propertiesLoader; 14 | 15 | @Before 16 | public void setUp() { 17 | this.propertiesLoader = Pcap4jPropertiesLoader.getInstance(); 18 | } 19 | 20 | @Test 21 | public void testHasDefaultAfInet() { 22 | assertNotNull(propertiesLoader.getAfInet()); 23 | assertEquals(2, (int) propertiesLoader.getAfInet()); 24 | } 25 | 26 | @Test 27 | public void testHasDefaultAfInet6() { 28 | assertNotNull(propertiesLoader.getAfInet6()); 29 | assertEquals(getExpectedDefaultAfInet6(), (int) propertiesLoader.getAfInet6()); 30 | } 31 | 32 | @Test 33 | public void testHasDefaultAfPacket() { 34 | assertNotNull(propertiesLoader.getAfPacket()); 35 | assertEquals(17, (int) propertiesLoader.getAfPacket()); 36 | } 37 | 38 | @Test 39 | public void testHasDefaultAfLink() { 40 | assertNotNull(propertiesLoader.getAfLink()); 41 | assertEquals(18, (int) propertiesLoader.getAfLink()); 42 | } 43 | 44 | @Test 45 | public void testHasDefaultDltRaw() { 46 | assertNotNull(propertiesLoader.getDltRaw()); 47 | assertEquals(getExpectedDefaultDltRaw(), (int) propertiesLoader.getDltRaw()); 48 | } 49 | 50 | private int getExpectedDefaultAfInet6() { 51 | switch (Platform.getOSType()) { 52 | case Platform.MAC: 53 | return 30; 54 | case Platform.FREEBSD: 55 | case Platform.KFREEBSD: 56 | return 28; 57 | case Platform.LINUX: 58 | case Platform.ANDROID: 59 | return 10; 60 | default: 61 | return 23; 62 | } 63 | } 64 | 65 | private int getExpectedDefaultDltRaw() { 66 | switch (Platform.getOSType()) { 67 | case Platform.OPENBSD: 68 | return 14; 69 | default: 70 | return 12; 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /pcap4j-core/src/test/java/org/pcap4j/core/BpfProgramTest.java: -------------------------------------------------------------------------------- 1 | package org.pcap4j.core; 2 | 3 | import static org.junit.Assert.*; 4 | 5 | import org.junit.Test; 6 | import org.pcap4j.core.BpfProgram.BpfCompileMode; 7 | import org.pcap4j.packet.Packet; 8 | 9 | @SuppressWarnings("javadoc") 10 | public class BpfProgramTest { 11 | 12 | @Test 13 | public void testOpenLive() throws Exception { 14 | PcapHandle ph = Pcaps.openOffline("src/test/resources/org/pcap4j/core/udp_tcp_icmp.pcap"); 15 | BpfProgram prog = 16 | ph.compileFilter("icmp", BpfCompileMode.OPTIMIZE, PcapHandle.PCAP_NETMASK_UNKNOWN); 17 | 18 | Packet udp = ph.getNextPacket(); 19 | assertFalse(prog.applyFilter(udp)); 20 | 21 | Packet tcp = ph.getNextPacket(); 22 | assertFalse(prog.applyFilter(tcp.getRawData())); 23 | 24 | byte[] icmp = ph.getNextPacket().getRawData(); 25 | byte[] icmpArr = new byte[icmp.length + 20]; 26 | System.arraycopy(icmp, 0, icmpArr, 0, icmp.length); 27 | assertTrue(prog.applyFilter(icmpArr, icmp.length, icmp.length)); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /pcap4j-core/src/test/java/org/pcap4j/core/PcapNetworkInterfaceTest.java: -------------------------------------------------------------------------------- 1 | package org.pcap4j.core; 2 | 3 | import static org.junit.Assert.assertNotNull; 4 | import static org.junit.Assert.assertTrue; 5 | 6 | import org.junit.After; 7 | import org.junit.AfterClass; 8 | import org.junit.Before; 9 | import org.junit.BeforeClass; 10 | import org.junit.Test; 11 | import org.pcap4j.core.PcapNetworkInterface.PromiscuousMode; 12 | import org.slf4j.Logger; 13 | import org.slf4j.LoggerFactory; 14 | 15 | @SuppressWarnings("javadoc") 16 | public class PcapNetworkInterfaceTest { 17 | 18 | private static final Logger logger = LoggerFactory.getLogger(PcapNetworkInterfaceTest.class); 19 | 20 | @BeforeClass 21 | public static void setUpBeforeClass() throws Exception {} 22 | 23 | @AfterClass 24 | public static void tearDownAfterClass() throws Exception {} 25 | 26 | @Before 27 | public void setUp() throws Exception {} 28 | 29 | @After 30 | public void tearDown() throws Exception {} 31 | 32 | @Test 33 | public void testOpenLive() throws Exception { 34 | PcapHandle handle; 35 | try { 36 | handle = Pcaps.findAllDevs().get(0).openLive(55555, PromiscuousMode.PROMISCUOUS, 100); 37 | } catch (IndexOutOfBoundsException e) { 38 | return; 39 | } catch (PcapNativeException e) { 40 | assertTrue( 41 | "The exception should complain about permission to capture.", 42 | e.getMessage().contains("You don't have permission to capture on that device")); 43 | return; 44 | } 45 | 46 | assertNotNull(handle); 47 | assertTrue(handle.isOpen()); 48 | 49 | logger.info(handle.toString()); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /pcap4j-core/src/test/java/org/pcap4j/core/test/Constants.java: -------------------------------------------------------------------------------- 1 | package org.pcap4j.core.test; 2 | 3 | @SuppressWarnings("javadoc") 4 | public class Constants { 5 | 6 | private Constants() { 7 | throw new AssertionError(); 8 | } 9 | 10 | public static String ENABLE_TIMESTAMP_PRECISION_TESTS_KEY = 11 | "org.pcap4j.core.test.enableTimestampPrecisionTests"; 12 | } 13 | -------------------------------------------------------------------------------- /pcap4j-core/src/test/java/org/pcap4j/util/ByteArraysTest.java: -------------------------------------------------------------------------------- 1 | package org.pcap4j.util; 2 | 3 | import static org.junit.Assert.*; 4 | 5 | import org.junit.Test; 6 | 7 | @SuppressWarnings("javadoc") 8 | public class ByteArraysTest { 9 | 10 | @Test 11 | public void testToHexString() throws Exception { 12 | byte[] arr = 13 | new byte[] { 14 | (byte) 0x0, 15 | (byte) 0x1, 16 | (byte) 0x2, 17 | (byte) 0x3, 18 | (byte) 0x4, 19 | (byte) 0x55, 20 | (byte) 0x56, 21 | (byte) 0x57, 22 | (byte) 0x58, 23 | (byte) 0x59, 24 | (byte) 0xaa, 25 | (byte) 0xab, 26 | (byte) 0xac, 27 | (byte) 0xad, 28 | (byte) 0xae, 29 | (byte) 0xaf, 30 | (byte) 0xfa, 31 | (byte) 0xfb, 32 | (byte) 0xfc, 33 | (byte) 0xfd, 34 | (byte) 0xfe, 35 | (byte) 0xff 36 | }; 37 | 38 | assertEquals( 39 | "00:01:02:03:04:55:56:57:58:59:aa:ab:ac:ad:ae:af:fa:fb:fc:fd:fe:ff", 40 | ByteArrays.toHexString(arr, ":")); 41 | assertEquals( 42 | "00 : 01 : 02 : 03 : 04 : 55 : 56 : 57 : 58 : 59 : aa : ab : ac : ad : ae : af : fa : fb : fc : fd : fe : ff", 43 | ByteArrays.toHexString(arr, " : ")); 44 | assertEquals("55-56-57-58-59", ByteArrays.toHexString(arr, "-", 5, 5)); 45 | assertEquals("aaabacadaeaf", ByteArrays.toHexString(arr, "", 10, 6)); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /pcap4j-core/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 7 | 8 | 9 | 10 | 11 | target/test/test.log 12 | false 13 | 14 | 15 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /pcap4j-core/src/test/resources/org/pcap4j/core/PcapHandleTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-core/src/test/resources/org/pcap4j/core/PcapHandleTest.pcap -------------------------------------------------------------------------------- /pcap4j-core/src/test/resources/org/pcap4j/core/PcapsTest.testOpenOfflineWithTimestampPrecision.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-core/src/test/resources/org/pcap4j/core/PcapsTest.testOpenOfflineWithTimestampPrecision.pcap -------------------------------------------------------------------------------- /pcap4j-core/src/test/resources/org/pcap4j/core/udp_tcp_icmp.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-core/src/test/resources/org/pcap4j/core/udp_tcp_icmp.pcap -------------------------------------------------------------------------------- /pcap4j-core/src/test/resources/org/pcap4j/pcap4j-test.properties: -------------------------------------------------------------------------------- 1 | #org.pcap4j.af.inet = 2 2 | #org.pcap4j.af.inet6 = 30 3 | #org.pcap4j.af.packet = 17 4 | #org.pcap4j.af.link = 18 5 | #org.pcap4j.dlt.raw = 12 6 | 7 | -------------------------------------------------------------------------------- /pcap4j-distribution/src/assemble/bin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | bin 7 | 8 | 9 | zip 10 | 11 | 12 | false 13 | 14 | 15 | 16 | false 17 | ./ 18 | false 19 | false 20 | 21 | 22 | 23 | 24 | 25 | ${project.parent.basedir} 26 | ./ 27 | 28 | README* 29 | LICENSE 30 | CHANGES.md 31 | 32 | 33 | 34 | ${project.build.directory} 35 | ./ 36 | 37 | *-javadoc.jar 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /pcap4j-distribution/src/assemble/src.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | src 7 | 8 | 9 | zip 10 | 11 | 12 | false 13 | 14 | 15 | 16 | false 17 | ./ 18 | false 19 | false 20 | 21 | 22 | 23 | 24 | 25 | ${project.parent.basedir} 26 | ./ 27 | 28 | README* 29 | LICENSE 30 | CHANGES.md 31 | 32 | 33 | 34 | ${project.parent.build.directory} 35 | ./ 36 | 37 | *-javadoc.jar 38 | 39 | 40 | 41 | ${project.parent.basedir} 42 | ./ 43 | 44 | pcap4j-*/src/** 45 | pom.xml 46 | pcap4j-*/pom.xml 47 | 48 | 49 | pcap4j-test-coverage/src/** 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-propertiesbased/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module org.pcap4j.packetfactory.propertiesbased { 2 | requires org.pcap4j.core; 3 | requires java.sql; 4 | 5 | // opens this package so that PacketFactoryPropertiesLoader can load packet-factory.properties 6 | opens org.pcap4j.packet.factory.propertiesbased; 7 | 8 | provides org.pcap4j.packet.factory.PacketFactoryBinderProvider with 9 | org.pcap4j.packet.factory.propertiesbased.services.PropertiesBasedPacketFactoryBinderProvider; 10 | } 11 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-propertiesbased/src/main/java/org/pcap4j/packet/factory/propertiesbased/services/PropertiesBasedPacketFactoryBinderProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * *************************************************************************** 3 | * Copyright (C) 2019 Thales AVS, All Rights Reserved. 4 | * *************************************************************************** 5 | */ 6 | package org.pcap4j.packet.factory.propertiesbased.services; 7 | 8 | import org.pcap4j.packet.factory.PacketFactoryBinder; 9 | import org.pcap4j.packet.factory.PacketFactoryBinderProvider; 10 | 11 | /** 12 | * @author Jordan Dubie 13 | * @since pcap4j 1.8.0 14 | */ 15 | public class PropertiesBasedPacketFactoryBinderProvider implements PacketFactoryBinderProvider { 16 | 17 | @Override 18 | public PacketFactoryBinder getBinder() { 19 | return PropertiesBasedPacketFactoryBinder.getInstance(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-propertiesbased/src/main/resources/META-INF/services/org.pcap4j.packet.factory.PacketFactoryBinderProvider: -------------------------------------------------------------------------------- 1 | org.pcap4j.packet.factory.propertiesbased.services.PropertiesBasedPacketFactoryBinderProvider 2 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-propertiesbased/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 7 | 8 | 9 | 10 | 11 | target/test/test.log 12 | false 13 | 14 | 15 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module org.pcap4j.packetfactory.statik { 2 | requires org.pcap4j.core; 3 | requires java.sql; 4 | 5 | provides org.pcap4j.packet.factory.PacketFactoryBinderProvider with 6 | org.pcap4j.packet.factory.statik.services.StaticPacketFactoryBinderProvider; 7 | } 8 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/PacketInstantiater.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2012-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.IllegalRawDataException; 11 | import org.pcap4j.packet.Packet; 12 | 13 | interface PacketInstantiater { 14 | 15 | public Packet newInstance(byte[] rawData, int offset, int length) throws IllegalRawDataException; 16 | 17 | public Class getTargetClass(); 18 | } 19 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticDot11FrameTypePacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2016-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.Dot11ProbeRequestPacket; 11 | import org.pcap4j.packet.IllegalRawDataException; 12 | import org.pcap4j.packet.Packet; 13 | import org.pcap4j.packet.namednumber.Dot11FrameType; 14 | 15 | /** 16 | * @author Kaito Yamada 17 | * @since pcap4j 1.7.0 18 | */ 19 | public final class StaticDot11FrameTypePacketFactory 20 | extends AbstractStaticPacketFactory { 21 | 22 | private static final StaticDot11FrameTypePacketFactory INSTANCE = 23 | new StaticDot11FrameTypePacketFactory(); 24 | 25 | private StaticDot11FrameTypePacketFactory() { 26 | instantiaters.put( 27 | Dot11FrameType.PROBE_REQUEST, 28 | new PacketInstantiater() { 29 | @Override 30 | public Packet newInstance(byte[] rawData, int offset, int length) 31 | throws IllegalRawDataException { 32 | return Dot11ProbeRequestPacket.newPacket(rawData, offset, length); 33 | } 34 | 35 | @Override 36 | public Class getTargetClass() { 37 | return Dot11ProbeRequestPacket.class; 38 | } 39 | }); 40 | }; 41 | 42 | /** @return the singleton instance of StaticDot11FrameTypePacketFactory. */ 43 | public static StaticDot11FrameTypePacketFactory getInstance() { 44 | return INSTANCE; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticGtpV1ExtensionPacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.GtpV1ExtPduSessionContainerPacket; 11 | import org.pcap4j.packet.IllegalRawDataException; 12 | import org.pcap4j.packet.Packet; 13 | import org.pcap4j.packet.namednumber.GtpV1ExtensionHeaderType; 14 | 15 | /** 16 | * @author Leo Ma 17 | * @since pcap4j 1.8.3 18 | */ 19 | public final class StaticGtpV1ExtensionPacketFactory 20 | extends AbstractStaticPacketFactory { 21 | 22 | private static final StaticGtpV1ExtensionPacketFactory INSTANCE = 23 | new StaticGtpV1ExtensionPacketFactory(); 24 | 25 | private StaticGtpV1ExtensionPacketFactory() { 26 | instantiaters.put( 27 | GtpV1ExtensionHeaderType.PDU_SESSION_CONTAINER, 28 | new PacketInstantiater() { 29 | @Override 30 | public Packet newInstance(byte[] rawData, int offset, int length) 31 | throws IllegalRawDataException { 32 | return GtpV1ExtPduSessionContainerPacket.newPacket(rawData, offset, length); 33 | } 34 | 35 | @Override 36 | public Class getTargetClass() { 37 | return GtpV1ExtPduSessionContainerPacket.class; 38 | } 39 | }); 40 | } 41 | 42 | /** @return the singleton instance of StaticGtpV1ExtensionPacketFactory. */ 43 | public static StaticGtpV1ExtensionPacketFactory getInstance() { 44 | return INSTANCE; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticIpV4TosFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.IpV4Packet.IpV4Tos; 11 | import org.pcap4j.packet.IpV4Rfc1349Tos; 12 | import org.pcap4j.packet.factory.PacketFactory; 13 | import org.pcap4j.packet.namednumber.NotApplicable; 14 | import org.pcap4j.util.ByteArrays; 15 | 16 | /** 17 | * @author Kaito Yamada 18 | * @since pcap4j 0.9.16 19 | */ 20 | public final class StaticIpV4TosFactory implements PacketFactory { 21 | 22 | private static final StaticIpV4TosFactory INSTANCE = new StaticIpV4TosFactory(); 23 | 24 | /** @return the singleton instance of StaticIpV4TosFactory. */ 25 | public static StaticIpV4TosFactory getInstance() { 26 | return INSTANCE; 27 | } 28 | 29 | @Override 30 | @Deprecated 31 | public IpV4Tos newInstance(byte[] rawData, int offset, int length, NotApplicable number) { 32 | return newInstance(rawData, offset, length); 33 | } 34 | 35 | @Override 36 | public IpV4Tos newInstance(byte[] rawData, int offset, int length) { 37 | ByteArrays.validateBounds(rawData, offset, length); 38 | return IpV4Rfc1349Tos.newInstance(rawData[offset]); 39 | } 40 | 41 | @Override 42 | @Deprecated 43 | public Class getTargetClass(NotApplicable number) { 44 | return getTargetClass(); 45 | } 46 | 47 | @Override 48 | public Class getTargetClass() { 49 | return IpV4Rfc1349Tos.class; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticIpV6FlowLabelFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import static org.pcap4j.util.ByteArrays.INT_SIZE_IN_BYTES; 11 | 12 | import org.pcap4j.packet.IpV6Packet.IpV6FlowLabel; 13 | import org.pcap4j.packet.IpV6SimpleFlowLabel; 14 | import org.pcap4j.packet.factory.PacketFactory; 15 | import org.pcap4j.packet.namednumber.NotApplicable; 16 | import org.pcap4j.util.ByteArrays; 17 | 18 | /** 19 | * @author Kaito Yamada 20 | * @since pcap4j 0.9.16 21 | */ 22 | public final class StaticIpV6FlowLabelFactory 23 | implements PacketFactory { 24 | 25 | private static final StaticIpV6FlowLabelFactory INSTANCE = new StaticIpV6FlowLabelFactory(); 26 | 27 | /** @return the singleton instance of StaticIpV6FlowLabelFactory. */ 28 | public static StaticIpV6FlowLabelFactory getInstance() { 29 | return INSTANCE; 30 | } 31 | 32 | @Override 33 | @Deprecated 34 | public IpV6FlowLabel newInstance(byte[] rawData, int offset, int length, NotApplicable number) { 35 | return newInstance(rawData, offset, length); 36 | } 37 | 38 | @Override 39 | public IpV6FlowLabel newInstance(byte[] rawData, int offset, int length) { 40 | ByteArrays.validateBounds(rawData, offset, length); 41 | if (length < INT_SIZE_IN_BYTES) { 42 | StringBuilder sb = new StringBuilder(100); 43 | sb.append("rawData is too short: ") 44 | .append(ByteArrays.toHexString(rawData, " ")) 45 | .append(", offset: ") 46 | .append(offset) 47 | .append(", length: ") 48 | .append(length); 49 | throw new IllegalArgumentException(sb.toString()); 50 | } 51 | 52 | return IpV6SimpleFlowLabel.newInstance(ByteArrays.getInt(rawData, offset)); 53 | } 54 | 55 | @Override 56 | @Deprecated 57 | public Class getTargetClass(NotApplicable number) { 58 | return getTargetClass(); 59 | } 60 | 61 | @Override 62 | public Class getTargetClass() { 63 | return IpV6SimpleFlowLabel.class; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticIpV6TrafficClassFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.IpV6Packet.IpV6TrafficClass; 11 | import org.pcap4j.packet.IpV6SimpleTrafficClass; 12 | import org.pcap4j.packet.factory.PacketFactory; 13 | import org.pcap4j.packet.namednumber.NotApplicable; 14 | import org.pcap4j.util.ByteArrays; 15 | 16 | /** 17 | * @author Kaito Yamada 18 | * @since pcap4j 0.9.16 19 | */ 20 | public final class StaticIpV6TrafficClassFactory 21 | implements PacketFactory { 22 | 23 | private static final StaticIpV6TrafficClassFactory INSTANCE = new StaticIpV6TrafficClassFactory(); 24 | 25 | /** @return the singleton instance of StaticIpV6TrafficClassFactory. */ 26 | public static StaticIpV6TrafficClassFactory getInstance() { 27 | return INSTANCE; 28 | } 29 | 30 | @Override 31 | @Deprecated 32 | public IpV6TrafficClass newInstance( 33 | byte[] rawData, int offset, int length, NotApplicable number) { 34 | return newInstance(rawData, offset, length); 35 | } 36 | 37 | @Override 38 | public IpV6TrafficClass newInstance(byte[] rawData, int offset, int length) { 39 | ByteArrays.validateBounds(rawData, offset, length); 40 | return IpV6SimpleTrafficClass.newInstance(rawData[offset]); 41 | } 42 | 43 | @Override 44 | @Deprecated 45 | public Class getTargetClass(NotApplicable number) { 46 | return getTargetClass(); 47 | } 48 | 49 | @Override 50 | public Class getTargetClass() { 51 | return IpV6SimpleTrafficClass.class; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticLlcNumberPacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2016-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.ArpPacket; 11 | import org.pcap4j.packet.IllegalRawDataException; 12 | import org.pcap4j.packet.Packet; 13 | import org.pcap4j.packet.SnapPacket; 14 | import org.pcap4j.packet.namednumber.LlcNumber; 15 | 16 | /** 17 | * @author Kaito Yamada 18 | * @since pcap4j 1.6.5 19 | */ 20 | public final class StaticLlcNumberPacketFactory extends AbstractStaticPacketFactory { 21 | 22 | private static final StaticLlcNumberPacketFactory INSTANCE = new StaticLlcNumberPacketFactory(); 23 | 24 | private StaticLlcNumberPacketFactory() { 25 | instantiaters.put( 26 | LlcNumber.ARP, 27 | new PacketInstantiater() { 28 | @Override 29 | public Packet newInstance(byte[] rawData, int offset, int length) 30 | throws IllegalRawDataException { 31 | return ArpPacket.newPacket(rawData, offset, length); 32 | } 33 | 34 | @Override 35 | public Class getTargetClass() { 36 | return ArpPacket.class; 37 | } 38 | }); 39 | instantiaters.put( 40 | LlcNumber.SNAP, 41 | new PacketInstantiater() { 42 | @Override 43 | public Packet newInstance(byte[] rawData, int offset, int length) 44 | throws IllegalRawDataException { 45 | return SnapPacket.newPacket(rawData, offset, length); 46 | } 47 | 48 | @Override 49 | public Class getTargetClass() { 50 | return SnapPacket.class; 51 | } 52 | }); 53 | } 54 | 55 | /** @return the singleton instance of StaticLlcNumberPacketFactory. */ 56 | public static StaticLlcNumberPacketFactory getInstance() { 57 | return INSTANCE; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticPppDllProtocolPacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2015-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.IllegalRawDataException; 11 | import org.pcap4j.packet.IpV4Packet; 12 | import org.pcap4j.packet.IpV6Packet; 13 | import org.pcap4j.packet.Packet; 14 | import org.pcap4j.packet.namednumber.PppDllProtocol; 15 | 16 | /** 17 | * @author Kaito Yamada 18 | * @since pcap4j 1.4.0 19 | */ 20 | public final class StaticPppDllProtocolPacketFactory 21 | extends AbstractStaticPacketFactory { 22 | 23 | private static final StaticPppDllProtocolPacketFactory INSTANCE = 24 | new StaticPppDllProtocolPacketFactory(); 25 | 26 | private StaticPppDllProtocolPacketFactory() { 27 | instantiaters.put( 28 | PppDllProtocol.IPV4, 29 | new PacketInstantiater() { 30 | @Override 31 | public Packet newInstance(byte[] rawData, int offset, int length) 32 | throws IllegalRawDataException { 33 | return IpV4Packet.newPacket(rawData, offset, length); 34 | } 35 | 36 | @Override 37 | public Class getTargetClass() { 38 | return IpV4Packet.class; 39 | } 40 | }); 41 | instantiaters.put( 42 | PppDllProtocol.IPV6, 43 | new PacketInstantiater() { 44 | @Override 45 | public Packet newInstance(byte[] rawData, int offset, int length) 46 | throws IllegalRawDataException { 47 | return IpV6Packet.newPacket(rawData, offset, length); 48 | } 49 | 50 | @Override 51 | public Class getTargetClass() { 52 | return IpV6Packet.class; 53 | } 54 | }); 55 | } 56 | 57 | /** @return the singleton instance of StaticPppDllProtocolPacketFactory. */ 58 | public static StaticPppDllProtocolPacketFactory getInstance() { 59 | return INSTANCE; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticProtocolFamilyPacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2015-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.IllegalRawDataException; 11 | import org.pcap4j.packet.IpV4Packet; 12 | import org.pcap4j.packet.IpV6Packet; 13 | import org.pcap4j.packet.Packet; 14 | import org.pcap4j.packet.namednumber.ProtocolFamily; 15 | 16 | /** 17 | * @author Kaito Yamada 18 | * @since pcap4j 1.5.0 19 | */ 20 | public final class StaticProtocolFamilyPacketFactory 21 | extends AbstractStaticPacketFactory { 22 | 23 | private static final StaticProtocolFamilyPacketFactory INSTANCE = 24 | new StaticProtocolFamilyPacketFactory(); 25 | 26 | private StaticProtocolFamilyPacketFactory() { 27 | instantiaters.put( 28 | ProtocolFamily.PF_INET, 29 | new PacketInstantiater() { 30 | @Override 31 | public Packet newInstance(byte[] rawData, int offset, int length) 32 | throws IllegalRawDataException { 33 | return IpV4Packet.newPacket(rawData, offset, length); 34 | } 35 | 36 | @Override 37 | public Class getTargetClass() { 38 | return IpV4Packet.class; 39 | } 40 | }); 41 | instantiaters.put( 42 | ProtocolFamily.PF_INET6, 43 | new PacketInstantiater() { 44 | @Override 45 | public Packet newInstance(byte[] rawData, int offset, int length) 46 | throws IllegalRawDataException { 47 | return IpV6Packet.newPacket(rawData, offset, length); 48 | } 49 | 50 | @Override 51 | public Class getTargetClass() { 52 | return IpV6Packet.class; 53 | } 54 | }); 55 | } 56 | 57 | /** @return the singleton instance of StaticProtocolFamilyPacketFactory. */ 58 | public static StaticProtocolFamilyPacketFactory getInstance() { 59 | return INSTANCE; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticSctpPortPacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2016-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.namednumber.SctpPort; 11 | 12 | /** 13 | * @author Jeff Myers 14 | * @since pcap4j 1.6.6 15 | */ 16 | public final class StaticSctpPortPacketFactory extends AbstractStaticPacketFactory { 17 | 18 | private static final StaticSctpPortPacketFactory INSTANCE = new StaticSctpPortPacketFactory(); 19 | 20 | private StaticSctpPortPacketFactory() { 21 | // instantiaters.put( 22 | // SctpPort.HTTP, new PacketInstantiater() { 23 | // @Override 24 | // public Packet newInstance( 25 | // byte[] rawData, int offset, int length 26 | // ) throws IllegalRawDataException { 27 | // return HttpPacket.newPacket(rawData, offset, length); 28 | // } 29 | // @Override 30 | // public Class getTargetClass() { 31 | // return HttpPacket.class; 32 | // } 33 | // } 34 | // ); 35 | } 36 | 37 | /** @return the singleton instance of StaticSctpPortPacketFactory. */ 38 | public static StaticSctpPortPacketFactory getInstance() { 39 | return INSTANCE; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticSsh2MessageNumberPacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2014-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.IllegalRawDataException; 11 | import org.pcap4j.packet.Packet; 12 | import org.pcap4j.packet.Ssh2KexInitPacket; 13 | import org.pcap4j.packet.namednumber.Ssh2MessageNumber; 14 | 15 | /** 16 | * @author Kaito Yamada 17 | * @since pcap4j 1.0.1 18 | */ 19 | public final class StaticSsh2MessageNumberPacketFactory 20 | extends AbstractStaticPacketFactory { 21 | 22 | private static final StaticSsh2MessageNumberPacketFactory INSTANCE = 23 | new StaticSsh2MessageNumberPacketFactory(); 24 | 25 | private StaticSsh2MessageNumberPacketFactory() { 26 | instantiaters.put( 27 | Ssh2MessageNumber.SSH_MSG_KEXINIT, 28 | new PacketInstantiater() { 29 | @Override 30 | public Packet newInstance(byte[] rawData, int offset, int length) 31 | throws IllegalRawDataException { 32 | return Ssh2KexInitPacket.newPacket(rawData, offset, length); 33 | } 34 | 35 | @Override 36 | public Class getTargetClass() { 37 | return Ssh2KexInitPacket.class; 38 | } 39 | }); 40 | } 41 | 42 | /** @return the singleton instance of StaticSsh2MessageNumberPacketFactory. */ 43 | public static StaticSsh2MessageNumberPacketFactory getInstance() { 44 | return INSTANCE; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/StaticTcpPortPacketFactory.java: -------------------------------------------------------------------------------- 1 | /*_########################################################################## 2 | _## 3 | _## Copyright (C) 2013-2019 Pcap4J.org 4 | _## 5 | _########################################################################## 6 | */ 7 | 8 | package org.pcap4j.packet.factory.statik; 9 | 10 | import org.pcap4j.packet.DnsPacket; 11 | import org.pcap4j.packet.IllegalRawDataException; 12 | import org.pcap4j.packet.Packet; 13 | import org.pcap4j.packet.namednumber.TcpPort; 14 | 15 | /** 16 | * @author Kaito Yamada 17 | * @since pcap4j 0.9.15 18 | */ 19 | public final class StaticTcpPortPacketFactory extends AbstractStaticPacketFactory { 20 | 21 | private static final StaticTcpPortPacketFactory INSTANCE = new StaticTcpPortPacketFactory(); 22 | 23 | private StaticTcpPortPacketFactory() { 24 | instantiaters.put( 25 | TcpPort.DOMAIN, 26 | new PacketInstantiater() { 27 | @Override 28 | public Packet newInstance(byte[] rawData, int offset, int length) 29 | throws IllegalRawDataException { 30 | return DnsPacket.newPacket(rawData, offset, length); 31 | } 32 | 33 | @Override 34 | public Class getTargetClass() { 35 | return DnsPacket.class; 36 | } 37 | }); 38 | } 39 | 40 | /** @return the singleton instance of StaticTcpPortPacketFactory. */ 41 | public static StaticTcpPortPacketFactory getInstance() { 42 | return INSTANCE; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/java/org/pcap4j/packet/factory/statik/services/StaticPacketFactoryBinderProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * *************************************************************************** 3 | * Copyright (C) 2019 Thales AVS, All Rights Reserved. * 4 | * *************************************************************************** 5 | */ 6 | package org.pcap4j.packet.factory.statik.services; 7 | 8 | import org.pcap4j.packet.factory.PacketFactoryBinder; 9 | import org.pcap4j.packet.factory.PacketFactoryBinderProvider; 10 | 11 | /** 12 | * @author Jordan Dubie 13 | * @since pcap4j 1.8.0 14 | */ 15 | public class StaticPacketFactoryBinderProvider implements PacketFactoryBinderProvider { 16 | 17 | @Override 18 | public PacketFactoryBinder getBinder() { 19 | return StaticPacketFactoryBinder.getInstance(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/main/resources/META-INF/services/org.pcap4j.packet.factory.PacketFactoryBinderProvider: -------------------------------------------------------------------------------- 1 | org.pcap4j.packet.factory.statik.services.StaticPacketFactoryBinderProvider 2 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 7 | 8 | 9 | 10 | 11 | target/test/test.log 12 | false 13 | 14 | 15 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /pcap4j-packetfactory-static/src/test/resources/org/pcap4j/test/core/udp_tcp_icmp.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packetfactory-static/src/test/resources/org/pcap4j/test/core/udp_tcp_icmp.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 4.0.0 6 | pcap4j-packettest 7 | jar 8 | Pcap4J Packet Test 9 | Tests of Pcap4J packet classes. 10 | 11 | 12 | org.pcap4j 13 | pcap4j 14 | 1.8.3-SNAPSHOT 15 | 16 | 17 | 18 | 19 | org.pcap4j 20 | pcap4j-core 21 | 22 | 23 | junit 24 | junit 25 | test 26 | 27 | 28 | 29 | 30 | 31 | 32 | org.apache.maven.plugins 33 | maven-compiler-plugin 34 | 35 | 36 | default-testCompile 37 | 38 | 6 39 | 40 | 41 | 42 | 43 | 44 | org.apache.maven.plugins 45 | maven-surefire-plugin 46 | 47 | true 48 | 49 | 50 | 51 | org.apache.maven.plugins 52 | maven-jar-plugin 53 | 54 | 55 | 56 | test-jar 57 | 58 | 59 | 60 | 61 | 62 | 63 | org.pcap4j.packettest 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/ArpPacketTest.log: -------------------------------------------------------------------------------- 1 | [ARP Header (28 bytes)] 2 | Hardware type: 1 (Ethernet (10Mb)) 3 | Protocol type: 0x0800 (IPv4) 4 | Hardware address length: 6 [bytes] 5 | Protocol address length: 4 [bytes] 6 | Operation: 1 (REQUEST) 7 | Source hardware address: fe:00:00:00:00:01 8 | Source protocol address: /192.0.2.1 9 | Destination hardware address: ff:ff:ff:ff:ff:ff 10 | Destination protocol address: /192.0.2.2 11 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/ArpPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/ArpPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/ArpPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/ArpPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/BsdLoopbackPacketTest.log: -------------------------------------------------------------------------------- 1 | [BSD Loopback Header (4 bytes)] 2 | Protocol Family: 2 (PF_INET) 3 | [IPv4 Header (20 bytes)] 4 | Version: 4 (IPv4) 5 | IHL: 5 (20 [bytes]) 6 | TOS: [precedence: 0 (Routine)] [tos: 0 (Default)] [mbz: 0] 7 | Total length: 32 [bytes] 8 | Identification: 100 9 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 10 | Fragment offset: 0 (0 [bytes]) 11 | TTL: 100 12 | Protocol: 1 (ICMPv4) 13 | Header checksum: 0xd275 14 | Source address: /192.0.2.1 15 | Destination address: /192.0.2.2 16 | [ICMPv4 Common Header (4 bytes)] 17 | Type: 8 (Echo) 18 | Code: 0 (No Code) 19 | Checksum: 0xe048 20 | [ICMPv4 Echo Header (4 bytes)] 21 | Identifier: 1234 22 | SequenceNumber: 4321 23 | [data (4 bytes)] 24 | Hex stream: 00 01 02 03 25 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/BsdLoopbackPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/BsdLoopbackPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/BsdLoopbackPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/BsdLoopbackPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/DltRawTest.log: -------------------------------------------------------------------------------- 1 | [IPv4 Header (20 bytes)] 2 | Version: 4 (IPv4) 3 | IHL: 5 (20 [bytes]) 4 | TOS: [precedence: 0 (Routine)] [tos: 0 (Default)] [mbz: 0] 5 | Total length: 32 [bytes] 6 | Identification: 100 7 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 8 | Fragment offset: 0 (0 [bytes]) 9 | TTL: 100 10 | Protocol: 1 (ICMPv4) 11 | Header checksum: 0xd275 12 | Source address: /192.0.2.1 13 | Destination address: /192.0.2.2 14 | [ICMPv4 Common Header (4 bytes)] 15 | Type: 8 (Echo) 16 | Code: 0 (No Code) 17 | Checksum: 0xe048 18 | [ICMPv4 Echo Header (4 bytes)] 19 | Identifier: 1234 20 | SequenceNumber: 4321 21 | [data (4 bytes)] 22 | Hex stream: 00 01 02 03 23 | 24 | [IPv6 Header (40 bytes)] 25 | Version: 6 (IPv6) 26 | Traffic Class: 0x12 27 | Flow Label: 0x12345 28 | Payload length: 12 [bytes] 29 | Next Header: 58 (ICMPv6) 30 | Hop Limit: 100 31 | Source address: /2001:db8:0:0:0:3:2:1 32 | Destination address: /2001:db8:0:0:0:3:2:2 33 | [ICMPv6 Common Header (4 bytes)] 34 | Type: 128 (Echo Request) 35 | Code: 0 (No Code) 36 | Checksum: 0x0c83 37 | [ICMPv6 Echo Request Header (4 bytes)] 38 | Identifier: 1234 39 | SequenceNumber: 4321 40 | [data (4 bytes)] 41 | Hex stream: 00 01 02 03 42 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/DltRawTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/DltRawTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/DnsPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/DnsPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/DnsPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/DnsPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/Dot11ProbeRequestPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/Dot11ProbeRequestPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/Dot11ProbeRequestPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/Dot11ProbeRequestPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/Dot1qVlanTaggedPacketTest.log: -------------------------------------------------------------------------------- 1 | [IEEE802.1Q Tag header (4 bytes)] 2 | Priority: 3 3 | CFI: 0 4 | VID: 123 5 | Type: 0x0806 (ARP) 6 | [ARP Header (28 bytes)] 7 | Hardware type: 1 (Ethernet (10Mb)) 8 | Protocol type: 0x0800 (IPv4) 9 | Hardware address length: 6 [bytes] 10 | Protocol address length: 4 [bytes] 11 | Operation: 1 (REQUEST) 12 | Source hardware address: fe:00:00:00:00:01 13 | Source protocol address: /192.0.2.1 14 | Destination hardware address: ff:ff:ff:ff:ff:ff 15 | Destination protocol address: /192.0.2.2 16 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/Dot1qVlanTaggedPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/Dot1qVlanTaggedPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/Dot1qVlanTaggedPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/Dot1qVlanTaggedPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/EthernetPacketTest.log: -------------------------------------------------------------------------------- 1 | [Ethernet Header (14 bytes)] 2 | Destination address: ff:ff:ff:ff:ff:ff 3 | Source address: fe:00:00:00:00:01 4 | Type: 0x0806 (ARP) 5 | [ARP Header (28 bytes)] 6 | Hardware type: 1 (Ethernet (10Mb)) 7 | Protocol type: 0x0800 (IPv4) 8 | Hardware address length: 6 [bytes] 9 | Protocol address length: 4 [bytes] 10 | Operation: 1 (REQUEST) 11 | Source hardware address: fe:00:00:00:00:01 12 | Source protocol address: /192.0.2.1 13 | Destination hardware address: ff:ff:ff:ff:ff:ff 14 | Destination protocol address: /192.0.2.2 15 | [Ethernet Pad (30 bytes)] 16 | Hex stream: 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 17 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/EthernetPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/EthernetPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/EthernetPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/EthernetPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/GtpV1ExtPduSessionContainerPacketTest.log: -------------------------------------------------------------------------------- 1 | [GTP Extension PDU Session Container Header (8 bytes)] 2 | Extension Header Length: 2 (8 bytes) 3 | PDU Type: 0 (DL PDU SESSION INFORMATION) 4 | spare 1: 0x05 5 | Paging Policy Presence: true (Paging Policy Indicator present) 6 | Reflective QoS Indicator: false (Reflective QoS activation not triggered) 7 | Qos Flow Identifier: 15 8 | Paging Policy Indicator: 7 9 | spare 2: 0x12 10 | Padding: 03 02 01 11 | Next Extension Header Type: 0x00 (No more extension headers) 12 | [data (4 bytes)] 13 | Hex stream: 00 01 02 03 -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/GtpV1ExtPduSessionContainerPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/GtpV1ExtPduSessionContainerPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/GtpV1ExtPduSessionContainerPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/GtpV1ExtPduSessionContainerPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/GtpV1PacketTest.log: -------------------------------------------------------------------------------- 1 | [GTPv1 Header (12 bytes)] 2 | Version: V1 3 | Protocol Type: GTP 4 | Reserved Flag: false 5 | Extension Flag: false 6 | Sequence Flag: true 7 | NPDU Flag: true 8 | Message Type: 2 (Echo Response) 9 | Length: 8 [bytes] 10 | Tunnel ID: 1234567890 11 | Sequence Number: 4321 12 | NPDU Number: 222 13 | Next Extension Header Type: 0xc0 (PDCP PDU number) 14 | [data (4 bytes)] 15 | Hex stream: 00 01 02 03 16 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/GtpV1PacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/GtpV1PacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/GtpV1PacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/GtpV1PacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/HdlcPppPacketTest.log: -------------------------------------------------------------------------------- 1 | [HDLC-encapsulated PPP Header (4 bytes)] 2 | Address: 0xff 3 | Control: 0x03 4 | Protocol: 0x0021 (IPv4) 5 | [IPv4 Header (20 bytes)] 6 | Version: 4 (IPv4) 7 | IHL: 5 (20 [bytes]) 8 | TOS: [precedence: 3 (Flash)] [tos: 10 (unknown)] [mbz: 1] 9 | Total length: 32 [bytes] 10 | Identification: 123 11 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 12 | Fragment offset: 0 (0 [bytes]) 13 | TTL: 111 14 | Protocol: 1 (ICMPv4) 15 | Header checksum: 0xc6e9 16 | Source address: /192.0.2.1 17 | Destination address: /192.0.2.2 18 | [ICMPv4 Common Header (4 bytes)] 19 | Type: 8 (Echo) 20 | Code: 0 (No Code) 21 | Checksum: 0xe048 22 | [ICMPv4 Echo Header (4 bytes)] 23 | Identifier: 1234 24 | SequenceNumber: 4321 25 | [data (4 bytes)] 26 | Hex stream: 00 01 02 03 27 | [PPP Pad (30 bytes)] 28 | Hex stream: 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 29 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/HdlcPppPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/HdlcPppPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/HdlcPppPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/HdlcPppPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4CommonPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Common Header (4 bytes)] 2 | Type: 8 (Echo) 3 | Code: 0 (No Code) 4 | Checksum: 0x1234 5 | [ICMPv4 Echo Header (4 bytes)] 6 | Identifier: 100 7 | SequenceNumber: 10 8 | [data (4 bytes)] 9 | Hex stream: 00 01 02 03 10 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4CommonPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4CommonPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4CommonPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4CommonPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4DestinationUnreachablePacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Destination Unreachable Header (4 bytes)] 2 | Unused: 12345 3 | [IPv4 Header (20 bytes)] 4 | Version: 4 (IPv4) 5 | IHL: 5 (20 [bytes]) 6 | TOS: [precedence: 0 (Routine)] [tos: 0 (Default)] [mbz: 0] 7 | Total length: 31 [bytes] 8 | Identification: 100 9 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 10 | Fragment offset: 0 (0 [bytes]) 11 | TTL: 100 12 | Protocol: 1 (ICMPv4) 13 | Header checksum: 0xd276 14 | Source address: /192.0.2.2 15 | Destination address: /192.0.2.1 16 | [ICMPv4 Common Header (4 bytes)] 17 | Type: 8 (Echo) 18 | Code: 0 (No Code) 19 | Checksum: 0xf590 20 | [ICMPv4 Echo Header (4 bytes)] 21 | Identifier: 100 22 | SequenceNumber: 10 23 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4DestinationUnreachablePacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4DestinationUnreachablePacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4DestinationUnreachablePacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4DestinationUnreachablePacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4EchoPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Echo Header (4 bytes)] 2 | Identifier: 1234 3 | SequenceNumber: 4321 4 | [data (4 bytes)] 5 | Hex stream: 00 01 02 03 6 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4EchoPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4EchoPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4EchoPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4EchoPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4EchoReplyPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Echo Reply Header (4 bytes)] 2 | Identifier: 1234 3 | SequenceNumber: 4321 4 | [data (4 bytes)] 5 | Hex stream: 00 01 02 03 6 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4EchoReplyPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4EchoReplyPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4EchoReplyPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4EchoReplyPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4InformationReplyPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Information Reply Header (4 bytes)] 2 | Identifier: 1234 3 | SequenceNumber: 4321 4 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4InformationReplyPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4InformationReplyPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4InformationReplyPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4InformationReplyPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4InformationRequestPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Information Request Header (4 bytes)] 2 | Identifier: 1234 3 | SequenceNumber: 4321 4 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4InformationRequestPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4InformationRequestPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4InformationRequestPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4InformationRequestPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4ParameterProblemPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Parameter Problem Header (4 bytes)] 2 | Pointer: 123 3 | Unused: 321 4 | [IPv4 Header (20 bytes)] 5 | Version: 4 (IPv4) 6 | IHL: 5 (20 [bytes]) 7 | TOS: [precedence: 0 (Routine)] [tos: 0 (Default)] [mbz: 0] 8 | Total length: 31 [bytes] 9 | Identification: 100 10 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 11 | Fragment offset: 0 (0 [bytes]) 12 | TTL: 100 13 | Protocol: 1 (ICMPv4) 14 | Header checksum: 0xd276 15 | Source address: /192.0.2.2 16 | Destination address: /192.0.2.1 17 | [ICMPv4 Common Header (4 bytes)] 18 | Type: 8 (Echo) 19 | Code: 0 (No Code) 20 | Checksum: 0xf590 21 | [ICMPv4 Echo Header (4 bytes)] 22 | Identifier: 100 23 | SequenceNumber: 10 24 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4ParameterProblemPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4ParameterProblemPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4ParameterProblemPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4ParameterProblemPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4RedirectPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Redirect Header (4 bytes)] 2 | Gateway Internet Address: /192.0.2.254 3 | [IPv4 Header (20 bytes)] 4 | Version: 4 (IPv4) 5 | IHL: 5 (20 [bytes]) 6 | TOS: [precedence: 0 (Routine)] [tos: 0 (Default)] [mbz: 0] 7 | Total length: 31 [bytes] 8 | Identification: 100 9 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 10 | Fragment offset: 0 (0 [bytes]) 11 | TTL: 100 12 | Protocol: 1 (ICMPv4) 13 | Header checksum: 0xd276 14 | Source address: /192.0.2.2 15 | Destination address: /192.0.2.1 16 | [ICMPv4 Common Header (4 bytes)] 17 | Type: 8 (Echo) 18 | Code: 0 (No Code) 19 | Checksum: 0xf590 20 | [ICMPv4 Echo Header (4 bytes)] 21 | Identifier: 100 22 | SequenceNumber: 10 23 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4RedirectPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4RedirectPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4RedirectPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4RedirectPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4SourceQuenchPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Source Quench Header (4 bytes)] 2 | Unused: 12345 3 | [IPv4 Header (20 bytes)] 4 | Version: 4 (IPv4) 5 | IHL: 5 (20 [bytes]) 6 | TOS: [precedence: 0 (Routine)] [tos: 0 (Default)] [mbz: 0] 7 | Total length: 31 [bytes] 8 | Identification: 100 9 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 10 | Fragment offset: 0 (0 [bytes]) 11 | TTL: 100 12 | Protocol: 1 (ICMPv4) 13 | Header checksum: 0xd276 14 | Source address: /192.0.2.2 15 | Destination address: /192.0.2.1 16 | [ICMPv4 Common Header (4 bytes)] 17 | Type: 8 (Echo) 18 | Code: 0 (No Code) 19 | Checksum: 0xf590 20 | [ICMPv4 Echo Header (4 bytes)] 21 | Identifier: 100 22 | SequenceNumber: 10 23 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4SourceQuenchPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4SourceQuenchPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4SourceQuenchPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4SourceQuenchPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimeExceededPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Time Exceeded Header (4 bytes)] 2 | Unused: 12345 3 | [IPv4 Header (20 bytes)] 4 | Version: 4 (IPv4) 5 | IHL: 5 (20 [bytes]) 6 | TOS: [precedence: 0 (Routine)] [tos: 0 (Default)] [mbz: 0] 7 | Total length: 31 [bytes] 8 | Identification: 100 9 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 10 | Fragment offset: 0 (0 [bytes]) 11 | TTL: 100 12 | Protocol: 1 (ICMPv4) 13 | Header checksum: 0xd276 14 | Source address: /192.0.2.2 15 | Destination address: /192.0.2.1 16 | [ICMPv4 Common Header (4 bytes)] 17 | Type: 8 (Echo) 18 | Code: 0 (No Code) 19 | Checksum: 0xf590 20 | [ICMPv4 Echo Header (4 bytes)] 21 | Identifier: 100 22 | SequenceNumber: 10 23 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimeExceededPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4TimeExceededPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimeExceededPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4TimeExceededPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimestampPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Timestamp Header (16 bytes)] 2 | Identifier: 1234 3 | SequenceNumber: 4321 4 | Originate Timestamp: 10 5 | Receive Timestamp: 200 6 | Transmit Timestamp: 3000 7 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimestampPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4TimestampPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimestampPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4TimestampPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimestampReplyPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv4 Timestamp Reply Header (16 bytes)] 2 | Identifier: 1234 3 | SequenceNumber: 4321 4 | Originate Timestamp: 10 5 | Receive Timestamp: 200 6 | Transmit Timestamp: 3000 7 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimestampReplyPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4TimestampReplyPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV4TimestampReplyPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV4TimestampReplyPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6CommonPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Common Header (4 bytes)] 2 | Type: 128 (Echo Request) 3 | Code: 0 (No Code) 4 | Checksum: 0x1234 5 | [ICMPv6 Echo Request Header (4 bytes)] 6 | Identifier: 100 7 | SequenceNumber: 10 8 | [data (4 bytes)] 9 | Hex stream: 00 01 02 03 10 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6CommonPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6CommonPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6CommonPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6CommonPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6DestinationUnreachablePacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Destination Unreachable Header (4 bytes)] 2 | Unused: 12345 3 | [IPv6 Header (40 bytes)] 4 | Version: 6 (IPv6) 5 | Traffic Class: 0x12 6 | Flow Label: 0x12345 7 | Payload length: 11 [bytes] 8 | Next Header: 58 (ICMPv6) 9 | Hop Limit: 100 10 | Source address: /2001:db8:0:0:0:3:2:1 11 | Destination address: /2001:db8:0:0:0:3:2:2 12 | [ICMPv6 Common Header (4 bytes)] 13 | Type: 128 (Echo Request) 14 | Code: 0 (No Code) 15 | Checksum: 0x21cc 16 | [ICMPv6 Echo Request Header (4 bytes)] 17 | Identifier: 100 18 | SequenceNumber: 10 19 | [data (3 bytes)] 20 | Hex stream: 00 01 02 21 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6DestinationUnreachablePacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6DestinationUnreachablePacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6DestinationUnreachablePacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6DestinationUnreachablePacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6EchoReplyPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Echo Reply Header (4 bytes)] 2 | Identifier: 1234 3 | SequenceNumber: 4321 4 | [data (4 bytes)] 5 | Hex stream: 00 01 02 03 6 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6EchoReplyPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6EchoReplyPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6EchoReplyPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6EchoReplyPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6EchoRequestPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Echo Request Header (4 bytes)] 2 | Identifier: 1234 3 | SequenceNumber: 4321 4 | [data (4 bytes)] 5 | Hex stream: 00 01 02 03 6 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6EchoRequestPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6EchoRequestPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6EchoRequestPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6EchoRequestPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Home Agent Address Discovery Reply Header (36 bytes)] 2 | Identifier: 1234 3 | Reserved: 12345 4 | HomeAgentAddress: /2001:db8:0:0:aaaa:bbbb:0:0 5 | HomeAgentAddress: /2001:db8:0:0:aaaa:bbbb:0:1 6 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryReplyPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Home Agent Address Discovery Request Header (4 bytes)] 2 | Identifier: 1234 3 | Reserved: 12345 4 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6HomeAgentAddressDiscoveryRequestPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixAdvertisementPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Mobile Prefix Advertisement Header (52 bytes)] 2 | Identifier: 1234 3 | ManagedAddressConfigurationFlag: true 4 | OtherStatefulConfigurationFlag: false 5 | Reserved: 10 6 | Option: [Type: 1 (Source Link-layer Address)] [Length: 1 (8 bytes)] [linkLayerAddress: ff 00 00 01 02 03] 7 | Option: [Type: 5 (MTU)] [Length: 1 (8 bytes)] [Reserved: -34] [MTU: 9999999] 8 | Option: [Type: 3 (Prefix Information)] [Length: 4 (32 bytes)] [Prefix Length: 96] [on-link flag: true] [address-configuration flag: false] [Reserved1: 22] [Valid Lifetime: 2222222] [Preferred Lifetime: 777777777] [Reserved2: 1212121212] [Prefix: /2001:db8:0:0:aaaa:bbbb:0:0] 9 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixAdvertisementPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixAdvertisementPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixAdvertisementPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixAdvertisementPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixSolicitationPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Mobile Prefix Solicitation Header (4 bytes)] 2 | Identifier: 1234 3 | Reserved: 12345 4 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixSolicitationPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixSolicitationPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixSolicitationPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6MobilePrefixSolicitationPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6NeighborAdvertisementPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Neighbor Advertisement Header (28 bytes)] 2 | Router flag: true 3 | Solicited flag: false 4 | Override flag: true 5 | Reserved: 123454321 6 | Target Address: /2001:db8:0:0:aaaa:bbbb:0:0 7 | Option: [Type: 2 (Target Link-layer Address)] [Length: 1 (8 bytes)] [linkLayerAddress: ff 00 00 ff ee dd] 8 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6NeighborAdvertisementPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6NeighborAdvertisementPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6NeighborAdvertisementPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6NeighborAdvertisementPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6NeighborSolicitationPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Neighbor Solicitation Header (28 bytes)] 2 | Reserved: 123454321 3 | Target Address: /2001:db8:0:0:aaaa:bbbb:0:0 4 | Option: [Type: 1 (Source Link-layer Address)] [Length: 1 (8 bytes)] [linkLayerAddress: ff 00 00 01 02 03] 5 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6NeighborSolicitationPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6NeighborSolicitationPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6NeighborSolicitationPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6NeighborSolicitationPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6PacketTooBigPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Packet Too Big Header (4 bytes)] 2 | MTU: 12345 3 | [IPv6 Header (40 bytes)] 4 | Version: 6 (IPv6) 5 | Traffic Class: 0x12 6 | Flow Label: 0x12345 7 | Payload length: 11 [bytes] 8 | Next Header: 58 (ICMPv6) 9 | Hop Limit: 100 10 | Source address: /2001:db8:0:0:0:3:2:1 11 | Destination address: /2001:db8:0:0:0:3:2:2 12 | [ICMPv6 Common Header (4 bytes)] 13 | Type: 128 (Echo Request) 14 | Code: 0 (No Code) 15 | Checksum: 0x21cc 16 | [ICMPv6 Echo Request Header (4 bytes)] 17 | Identifier: 100 18 | SequenceNumber: 10 19 | [data (3 bytes)] 20 | Hex stream: 00 01 02 21 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6PacketTooBigPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6PacketTooBigPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6PacketTooBigPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6PacketTooBigPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6ParameterProblemPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Parameter Problem Header (4 bytes)] 2 | Pointer: 12345 3 | [IPv6 Header (40 bytes)] 4 | Version: 6 (IPv6) 5 | Traffic Class: 0x12 6 | Flow Label: 0x12345 7 | Payload length: 11 [bytes] 8 | Next Header: 58 (ICMPv6) 9 | Hop Limit: 100 10 | Source address: /2001:db8:0:0:0:3:2:1 11 | Destination address: /2001:db8:0:0:0:3:2:2 12 | [ICMPv6 Common Header (4 bytes)] 13 | Type: 128 (Echo Request) 14 | Code: 0 (No Code) 15 | Checksum: 0x21cc 16 | [ICMPv6 Echo Request Header (4 bytes)] 17 | Identifier: 100 18 | SequenceNumber: 10 19 | [data (3 bytes)] 20 | Hex stream: 00 01 02 21 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6ParameterProblemPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6ParameterProblemPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6ParameterProblemPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6ParameterProblemPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RedirectPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Redirect Header (100 bytes)] 2 | Reserved: 123454321 3 | Target Address: /2001:db8:0:0:aaaa:bbbb:0:1 4 | Destination Address: /2001:db8:0:0:aaaa:bbbb:0:254 5 | Option: [Type: 2 (Target Link-layer Address)] [Length: 1 (8 bytes)] [linkLayerAddress: ff 00 00 01 02 03] 6 | Option: [Type: 4 (Redirected Header)] [Length: 7 (56 bytes)] [Reserved: 00 11 22 33 44 55] [IP header + data: {[IPv6 Header (40 bytes)] 7 | Version: 6 (IPv6) 8 | Traffic Class: 0x12 9 | Flow Label: 0x12345 10 | Payload length: 11 [bytes] 11 | Next Header: 58 (ICMPv6) 12 | Hop Limit: 100 13 | Source address: /2001:db8:0:0:0:3:2:1 14 | Destination address: /2001:db8:0:0:0:3:2:2 15 | [ICMPv6 Common Header (4 bytes)] 16 | Type: 128 (Echo Request) 17 | Code: 0 (No Code) 18 | Checksum: 0x21cc 19 | [ICMPv6 Echo Request Header (4 bytes)] 20 | Identifier: 100 21 | SequenceNumber: 10 22 | }] 23 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RedirectPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6RedirectPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RedirectPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6RedirectPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RouterAdvertisementPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Router Advertisement Header (60 bytes)] 2 | Cur Hop Limit: 123 3 | Managed address configuration flag: true 4 | Other configuration flag: false 5 | Reserved: 10 6 | Router Lifetime: 55555 7 | Reachable Time: 3333333 8 | Retrans Timer: 111111 9 | Option: [Type: 1 (Source Link-layer Address)] [Length: 1 (8 bytes)] [linkLayerAddress: ff 00 00 01 02 03] 10 | Option: [Type: 5 (MTU)] [Length: 1 (8 bytes)] [Reserved: -34] [MTU: 9999999] 11 | Option: [Type: 3 (Prefix Information)] [Length: 4 (32 bytes)] [Prefix Length: 96] [on-link flag: true] [address-configuration flag: false] [Reserved1: 22] [Valid Lifetime: 2222222] [Preferred Lifetime: 777777777] [Reserved2: 1212121212] [Prefix: /2001:db8:0:0:aaaa:bbbb:0:0] 12 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RouterAdvertisementPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6RouterAdvertisementPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RouterAdvertisementPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6RouterAdvertisementPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RouterSolicitationPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Router Solicitation Header (12 bytes)] 2 | Reserved: 123454321 3 | Option: [Type: 1 (Source Link-layer Address)] [Length: 1 (8 bytes)] [linkLayerAddress: ff 00 00 01 02 03] 4 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RouterSolicitationPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6RouterSolicitationPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6RouterSolicitationPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6RouterSolicitationPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6TimeExceededPacketTest.log: -------------------------------------------------------------------------------- 1 | [ICMPv6 Time Exceeded Header (4 bytes)] 2 | Unused: 12345 3 | [IPv6 Header (40 bytes)] 4 | Version: 6 (IPv6) 5 | Traffic Class: 0x12 6 | Flow Label: 0x12345 7 | Payload length: 11 [bytes] 8 | Next Header: 58 (ICMPv6) 9 | Hop Limit: 100 10 | Source address: /2001:db8:0:0:0:3:2:1 11 | Destination address: /2001:db8:0:0:0:3:2:2 12 | [ICMPv6 Common Header (4 bytes)] 13 | Type: 128 (Echo Request) 14 | Code: 0 (No Code) 15 | Checksum: 0x21cc 16 | [ICMPv6 Echo Request Header (4 bytes)] 17 | Identifier: 100 18 | SequenceNumber: 10 19 | [data (3 bytes)] 20 | Hex stream: 00 01 02 21 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6TimeExceededPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6TimeExceededPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IcmpV6TimeExceededPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IcmpV6TimeExceededPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV4HelperTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV4HelperTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV4PacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV4PacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV4PacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV4PacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtDestinationOptionsPacketTest.log: -------------------------------------------------------------------------------- 1 | [IPv6 Destination Options Header (8 bytes)] 2 | Next Header: 17 (UDP) 3 | Hdr Ext Len: 0 (8 [bytes]) 4 | Options: 5 | [Option Type: 0x00 (Pad1)] 6 | [Option Type: 0x01 (PadN)] [Option Data Len: 3 bytes] [Option Data: 0x000000] 7 | [UDP Header (8 bytes)] 8 | Source port: 162 (SNMP Trap) 9 | Destination port: 0 (unknown) 10 | Length: 12 [bytes] 11 | Checksum: 0xa1b1 12 | [data (4 bytes)] 13 | Hex stream: 00 01 02 03 14 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtDestinationOptionsPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtDestinationOptionsPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtDestinationOptionsPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtDestinationOptionsPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtFragmentPacketTest.log: -------------------------------------------------------------------------------- 1 | [IPv6 Fragment Header (8 bytes)] 2 | Next Header: 17 (UDP) 3 | Reserved: 63 4 | Fragment Offset: 0 5 | Res: 01 6 | M: true 7 | Identification: 654321 8 | [Fragmented data (8 bytes)] 9 | Hex stream: 00 a2 00 00 00 10 97 9d 10 | [IPv6 Fragment Header (8 bytes)] 11 | Next Header: 17 (UDP) 12 | Reserved: 63 13 | Fragment Offset: 1 14 | Res: 01 15 | M: false 16 | Identification: 654321 17 | [Fragmented data (8 bytes)] 18 | Hex stream: 00 01 02 03 04 05 06 07 19 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtFragmentPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtFragmentPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtFragmentPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtFragmentPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtHopByHopOptionsPacketTest.log: -------------------------------------------------------------------------------- 1 | [IPv6 Hop-by-Hop Options Header (8 bytes)] 2 | Next Header: 17 (UDP) 3 | Hdr Ext Len: 0 (8 [bytes]) 4 | Options: 5 | [Option Type: 0x00 (Pad1)] 6 | [Option Type: 0x01 (PadN)] [Option Data Len: 3 bytes] [Option Data: 0x000000] 7 | [UDP Header (8 bytes)] 8 | Source port: 162 (SNMP Trap) 9 | Destination port: 0 (unknown) 10 | Length: 12 [bytes] 11 | Checksum: 0xa1b1 12 | [data (4 bytes)] 13 | Hex stream: 00 01 02 03 14 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtHopByHopOptionsPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtHopByHopOptionsPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtHopByHopOptionsPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtHopByHopOptionsPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtRoutingPacketTest.log: -------------------------------------------------------------------------------- 1 | [IPv6 Routing Header (56 bytes)] 2 | Next Header: 17 (UDP) 3 | Hdr Ext Len: 6 (56 [bytes]) 4 | Routing Type: 0 (Source Route) 5 | Segments Left: 2 6 | type-specific data: [reserved: 54321] [addresses: /abcd:ef:0:0:0:1:1:1 /abcd:ef:0:0:0:2:2:2 /2001:db8:0:0:0:3:2:2] 7 | [UDP Header (8 bytes)] 8 | Source port: 162 (SNMP Trap) 9 | Destination port: 0 (unknown) 10 | Length: 12 [bytes] 11 | Checksum: 0xa1b1 12 | [data (4 bytes)] 13 | Hex stream: 00 01 02 03 14 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtRoutingPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtRoutingPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtRoutingPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtRoutingPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtUnknownPacketTest.log: -------------------------------------------------------------------------------- 1 | [IPv6 Unknown Extension Header (16 bytes)] 2 | Next Header: 17 (UDP) 3 | Hdr Ext Len: 1 (16 [bytes]) 4 | data: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 5 | [UDP Header (8 bytes)] 6 | Source port: 162 (SNMP Trap) 7 | Destination port: 0 (unknown) 8 | Length: 12 [bytes] 9 | Checksum: 0xa1b1 10 | [data (4 bytes)] 11 | Hex stream: 00 01 02 03 12 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtUnknownPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtUnknownPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6ExtUnknownPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6ExtUnknownPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6PacketTest.log: -------------------------------------------------------------------------------- 1 | [IPv6 Header (40 bytes)] 2 | Version: 6 (IPv6) 3 | Traffic Class: 0x12 4 | Flow Label: 0x12345 5 | Payload length: 12 [bytes] 6 | Next Header: 17 (UDP) 7 | Hop Limit: 100 8 | Source address: /2001:db8:0:0:0:3:2:1 9 | Destination address: /2001:db8:0:0:0:3:2:2 10 | [UDP Header (8 bytes)] 11 | Source port: 162 (SNMP Trap) 12 | Destination port: 0 (unknown) 13 | Length: 12 [bytes] 14 | Checksum: 0xa1b1 15 | [data (4 bytes)] 16 | Hex stream: 00 01 02 03 17 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6PacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6PacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/IpV6PacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/IpV6PacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LinuxSllPacketTest.log: -------------------------------------------------------------------------------- 1 | [Linux SLL header (16 bytes)] 2 | Packet Type: 0 (A packet addressed to the local host) 3 | Address Type: 1 (Ethernet (10Mb)) 4 | Address Length: 4 5 | Address: ff:ee:dd:cc (ff ee dd cc 11 22 33 44) 6 | Protocol: 0x0806 (ARP) 7 | [ARP Header (28 bytes)] 8 | Hardware type: 1 (Ethernet (10Mb)) 9 | Protocol type: 0x0800 (IPv4) 10 | Hardware address length: 6 [bytes] 11 | Protocol address length: 4 [bytes] 12 | Operation: 1 (REQUEST) 13 | Source hardware address: aa:bb:cc:dd:ee:ff 14 | Source protocol address: /192.0.2.1 15 | Destination hardware address: 11:22:33:44:55:66 16 | Destination protocol address: /192.0.2.2 17 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LinuxSllPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/LinuxSllPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LinuxSllPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/LinuxSllPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcInformationPacketTest.log: -------------------------------------------------------------------------------- 1 | [Logical Link Control header (4 bytes)] 2 | DSAP: 0 (NULL LSAP) 3 | SSAP: 0 (NULL LSAP) 4 | Control: [receive sequence number: 10] [P/F bit: 0] [send sequence number: 100] 5 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcInformationPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/LlcInformationPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcInformationPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/LlcInformationPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcSupervisoryPacketTest.log: -------------------------------------------------------------------------------- 1 | [Logical Link Control header (4 bytes)] 2 | DSAP: 0 (NULL LSAP) 3 | SSAP: 0 (NULL LSAP) 4 | Control: [receive sequence number: 127] [P/F bit: 0] [reserved: 10] [supervisory function: 2 (Reject)] 5 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcSupervisoryPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/LlcSupervisoryPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcSupervisoryPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/LlcSupervisoryPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcUnnumberedPacketTest.log: -------------------------------------------------------------------------------- 1 | [Logical Link Control header (3 bytes)] 2 | DSAP: 152 (ARP) 3 | SSAP: 152 (ARP) 4 | Control: [modifier function: 0 (UI)] [P/F bit: 0] 5 | [ARP Header (28 bytes)] 6 | Hardware type: 1 (Ethernet (10Mb)) 7 | Protocol type: 0x0800 (IPv4) 8 | Hardware address length: 6 [bytes] 9 | Protocol address length: 4 [bytes] 10 | Operation: 1 (REQUEST) 11 | Source hardware address: fe:00:00:00:00:01 12 | Source protocol address: /192.0.2.1 13 | Destination hardware address: ff:ff:ff:ff:ff:ff 14 | Destination protocol address: /192.0.2.2 15 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcUnnumberedPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/LlcUnnumberedPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/LlcUnnumberedPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/LlcUnnumberedPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/PppPacketTest.log: -------------------------------------------------------------------------------- 1 | [PPP Header (2 bytes)] 2 | Protocol: 0x0021 (IPv4) 3 | [IPv4 Header (20 bytes)] 4 | Version: 4 (IPv4) 5 | IHL: 5 (20 [bytes]) 6 | TOS: [precedence: 3 (Flash)] [tos: 10 (unknown)] [mbz: 1] 7 | Total length: 32 [bytes] 8 | Identification: 123 9 | Flags: (Reserved, Don't Fragment, More Fragment) = (false, false, false) 10 | Fragment offset: 0 (0 [bytes]) 11 | TTL: 111 12 | Protocol: 1 (ICMPv4) 13 | Header checksum: 0xc6e9 14 | Source address: /192.0.2.1 15 | Destination address: /192.0.2.2 16 | [ICMPv4 Common Header (4 bytes)] 17 | Type: 8 (Echo) 18 | Code: 0 (No Code) 19 | Checksum: 0xe048 20 | [ICMPv4 Echo Header (4 bytes)] 21 | Identifier: 1234 22 | SequenceNumber: 4321 23 | [data (4 bytes)] 24 | Hex stream: 00 01 02 03 25 | [PPP Pad (30 bytes)] 26 | Hex stream: 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 27 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/PppPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/PppPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/PppPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/PppPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/RadiotapPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/RadiotapPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/RadiotapPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/RadiotapPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/SctpPacketTest.log: -------------------------------------------------------------------------------- 1 | [SCTP Header (20 bytes)] 2 | Source port: 0 (unknown) 3 | Destination port: 80 (HTTP) 4 | Verification tag: 0xfadefade 5 | Checksum: 0xabcdabcd 6 | Chunks: 7 | [Type: 7 (Shutdown), Flags: 0xaf, Length: 8 bytes, Value: 0x01020304] 8 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/SctpPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/SctpPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/SctpPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/SctpPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/SnapPacketTest.log: -------------------------------------------------------------------------------- 1 | [Subnetwork Access Protocol header (5 bytes)] 2 | OUI: 00-00-0c (Cisco) 3 | Protocol ID: 0x0806 (ARP) 4 | [ARP Header (28 bytes)] 5 | Hardware type: 1 (Ethernet (10Mb)) 6 | Protocol type: 0x0800 (IPv4) 7 | Hardware address length: 6 [bytes] 8 | Protocol address length: 4 [bytes] 9 | Operation: 1 (REQUEST) 10 | Source hardware address: fe:00:00:00:00:01 11 | Source protocol address: /192.0.2.1 12 | Destination hardware address: ff:ff:ff:ff:ff:ff 13 | Destination protocol address: /192.0.2.2 14 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/SnapPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/SnapPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/SnapPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/SnapPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/TcpPacketTest.log: -------------------------------------------------------------------------------- 1 | [TCP Header (60 bytes)] 2 | Source port: 161 (SNMP) 3 | Destination port: 0 (unknown) 4 | Sequence Number: 1234567 5 | Acknowledgment Number: 7654321 6 | Data Offset: 15 (60 [bytes]) 7 | Reserved: 11 8 | URG: false 9 | ACK: true 10 | PSH: false 11 | RST: true 12 | SYN: false 13 | FIN: true 14 | Window: 9999 15 | Checksum: 0xabcd 16 | Urgent Pointer: 1111 17 | Option: [Kind: 2 (Maximum Segment Size)] [Length: 4 bytes] [Maximum Segment Size: 5555 bytes] 18 | Option: [Kind: 1 (No Operation)] 19 | Option: [Kind: 3 (Window Scale)] [Length: 3 bytes] [Shift Count: 2] 20 | Option: [Kind: 4 (SACK Permitted)] [Length: 2 bytes] 21 | Option: [Kind: 8 (Timestamps)] [Length: 10 bytes] [TS Value: 200] [TS Echo Reply: 111] 22 | Option: [Kind: 5 (SACK)] [Length: 18 bytes] [LE: 2000 RE: 4000] [LE: 6000 RE: 10000] 23 | Option: [Kind: 0 (End of Option List)] 24 | Padding: 0xaa 25 | [data (4 bytes)] 26 | Hex stream: 00 01 02 03 27 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/TcpPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/TcpPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/TcpPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/TcpPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/UdpPacketTest.log: -------------------------------------------------------------------------------- 1 | [UDP Header (8 bytes)] 2 | Source port: 161 (SNMP) 3 | Destination port: 0 (unknown) 4 | Length: 12 [bytes] 5 | Checksum: 0xabcd 6 | [data (4 bytes)] 7 | Hex stream: 00 01 02 03 8 | -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/UdpPacketTest.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/UdpPacketTest.obj -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/UdpPacketTest.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/UdpPacketTest.pcap -------------------------------------------------------------------------------- /pcap4j-packettest/src/test/resources/UdpPacketTestChecksum0xFFFF.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-packettest/src/test/resources/UdpPacketTestChecksum0xFFFF.pcap -------------------------------------------------------------------------------- /pcap4j-sample/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 4.0.0 6 | pcap4j-sample 7 | jar 8 | Pcap4J Sample 9 | Samples of Pcap4J. 10 | 11 | 12 | org.pcap4j 13 | pcap4j 14 | 1.8.3-SNAPSHOT 15 | 16 | 17 | 18 | 19 | org.pcap4j 20 | pcap4j-core 21 | 22 | 23 | 24 | 25 | 26 | 27 | src/main/resources 28 | 29 | **/*.pcap 30 | 31 | false 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /pcap4j-sample/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module org.pcap4j.sample { 2 | exports org.pcap4j.sample; 3 | 4 | requires org.pcap4j.core; 5 | requires com.sun.jna; 6 | } 7 | -------------------------------------------------------------------------------- /pcap4j-sample/src/main/java/org/pcap4j/sample/HeavyLoop.java: -------------------------------------------------------------------------------- 1 | package org.pcap4j.sample; 2 | 3 | import java.io.IOException; 4 | import java.util.concurrent.ExecutorService; 5 | import java.util.concurrent.Executors; 6 | import org.pcap4j.core.NotOpenException; 7 | import org.pcap4j.core.PacketListener; 8 | import org.pcap4j.core.PcapHandle; 9 | import org.pcap4j.core.PcapNativeException; 10 | import org.pcap4j.core.PcapNetworkInterface; 11 | import org.pcap4j.core.PcapNetworkInterface.PromiscuousMode; 12 | import org.pcap4j.packet.Packet; 13 | import org.pcap4j.util.NifSelector; 14 | 15 | @SuppressWarnings("javadoc") 16 | public class HeavyLoop { 17 | 18 | private HeavyLoop() {} 19 | 20 | public static void main(String[] args) throws PcapNativeException, NotOpenException { 21 | PcapNetworkInterface nif; 22 | try { 23 | nif = new NifSelector().selectNetworkInterface(); 24 | } catch (IOException e) { 25 | e.printStackTrace(); 26 | return; 27 | } 28 | 29 | if (nif == null) { 30 | return; 31 | } 32 | 33 | System.out.println(nif.getName() + "(" + nif.getDescription() + ")"); 34 | 35 | final PcapHandle handle = nif.openLive(65536, PromiscuousMode.PROMISCUOUS, 10); 36 | 37 | PacketListener listener = 38 | new PacketListener() { 39 | @Override 40 | public void gotPacket(Packet packet) { 41 | System.out.println(handle.getTimestamp()); 42 | 43 | System.out.println("start a heavy task"); 44 | try { 45 | Thread.sleep(5000); 46 | } catch (InterruptedException e) { 47 | 48 | } 49 | System.out.println("done"); 50 | } 51 | }; 52 | 53 | try { 54 | ExecutorService pool = Executors.newCachedThreadPool(); 55 | handle.loop(5, listener, pool); // This is better than handle.loop(5, listener); 56 | pool.shutdown(); 57 | } catch (InterruptedException e) { 58 | e.printStackTrace(); 59 | } 60 | 61 | handle.close(); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /pcap4j-sample/src/main/java/org/pcap4j/sample/PcapFileMerger.java: -------------------------------------------------------------------------------- 1 | package org.pcap4j.sample; 2 | 3 | import org.pcap4j.core.NotOpenException; 4 | import org.pcap4j.core.PcapDumper; 5 | import org.pcap4j.core.PcapHandle; 6 | import org.pcap4j.core.PcapNativeException; 7 | import org.pcap4j.core.Pcaps; 8 | import org.pcap4j.packet.Packet; 9 | 10 | @SuppressWarnings("javadoc") 11 | public class PcapFileMerger { 12 | 13 | private PcapFileMerger() {} 14 | 15 | public static void main(String[] args) throws PcapNativeException, NotOpenException { 16 | // args: pcap file list 17 | 18 | PcapDumper dumper = null; 19 | for (String pcapFile : args) { 20 | PcapHandle handle = Pcaps.openOffline(pcapFile); 21 | 22 | if (dumper == null) { 23 | dumper = handle.dumpOpen(PcapFileMerger.class.getSimpleName() + ".pcap"); 24 | } 25 | 26 | Packet packet; 27 | while ((packet = handle.getNextPacket()) != null) { 28 | dumper.dump(packet, handle.getTimestamp()); 29 | } 30 | 31 | handle.close(); 32 | } 33 | 34 | if (dumper != null) { 35 | dumper.close(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /pcap4j-sample/src/main/java/org/pcap4j/sample/ReadPacketFile.java: -------------------------------------------------------------------------------- 1 | package org.pcap4j.sample; 2 | 3 | import java.io.EOFException; 4 | import java.util.concurrent.TimeoutException; 5 | import org.pcap4j.core.NotOpenException; 6 | import org.pcap4j.core.PcapHandle; 7 | import org.pcap4j.core.PcapHandle.TimestampPrecision; 8 | import org.pcap4j.core.PcapNativeException; 9 | import org.pcap4j.core.Pcaps; 10 | import org.pcap4j.packet.Packet; 11 | 12 | @SuppressWarnings("javadoc") 13 | public class ReadPacketFile { 14 | 15 | private static final int COUNT = 5; 16 | 17 | private static final String PCAP_FILE_KEY = ReadPacketFile.class.getName() + ".pcapFile"; 18 | private static final String PCAP_FILE = 19 | System.getProperty(PCAP_FILE_KEY, "src/main/resources/echoAndEchoReply.pcap"); 20 | 21 | private ReadPacketFile() {} 22 | 23 | public static void main(String[] args) throws PcapNativeException, NotOpenException { 24 | PcapHandle handle; 25 | try { 26 | handle = Pcaps.openOffline(PCAP_FILE, TimestampPrecision.NANO); 27 | } catch (PcapNativeException e) { 28 | handle = Pcaps.openOffline(PCAP_FILE); 29 | } 30 | 31 | for (int i = 0; i < COUNT; i++) { 32 | try { 33 | Packet packet = handle.getNextPacketEx(); 34 | System.out.println(handle.getTimestamp()); 35 | System.out.println(packet); 36 | } catch (TimeoutException e) { 37 | } catch (EOFException e) { 38 | System.out.println("EOF"); 39 | break; 40 | } 41 | } 42 | 43 | handle.close(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /pcap4j-sample/src/main/resources/echoAndEchoReply.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-sample/src/main/resources/echoAndEchoReply.pcap -------------------------------------------------------------------------------- /pcap4j-sample/src/main/resources/flagmentedEcho.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/pcap4j-sample/src/main/resources/flagmentedEcho.pcap -------------------------------------------------------------------------------- /pcap4j-test-coverage/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 4.0.0 6 | pcap4j-test-coverage 7 | jar 8 | Pcap4J Test Coverage 9 | The dummy module to measure test coverage of Pcap4J. 10 | 11 | 12 | org.pcap4j 13 | pcap4j 14 | 1.8.3-SNAPSHOT 15 | 16 | 17 | 18 | 19 | test-coverage 20 | 21 | 22 | 23 | org.pcap4j 24 | pcap4j-core 25 | 26 | 27 | org.pcap4j 28 | pcap4j-packetfactory-static 29 | 30 | 31 | org.pcap4j 32 | pcap4j-packetfactory-propertiesbased 33 | 34 | 35 | 36 | 37 | 38 | 39 | org.jacoco 40 | jacoco-maven-plugin 41 | 42 | 43 | report-aggregate 44 | verify 45 | 46 | report-aggregate 47 | 48 | 49 | 50 | 51 | ${project.reporting.outputDirectory}/jacoco 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /tool/coveralls-report.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ./mvnw -e -P test-coverage -DrepoToken=$COVERALLS_REPO_TOKEN clean verify coveralls:report 4 | -------------------------------------------------------------------------------- /tool/named_numbers.pl: -------------------------------------------------------------------------------- 1 | #!perl 2 | 3 | use strict; 4 | use warnings; 5 | use utf8; 6 | 7 | use Getopt::Long qw(GetOptions); 8 | use FindBin qw($Script); 9 | use Carp qw(croak carp); 10 | 11 | my $class_name; 12 | my $cast = ""; 13 | my $registry; 14 | GetOptions( 15 | 'h|help' => sub { pr_help(); exit 0; }, 16 | 'cn|class-name=s' => \$class_name, 17 | 'c|cast=s' => \$cast, 18 | 'r|registry' => \$registry, 19 | ) or do { pr_help(); exit 1; }; 20 | 21 | if ((not $registry) and (not defined $class_name)) { 22 | pr_help(); 23 | exit 1; 24 | } 25 | 26 | $cast = $cast ? "($cast) " : $cast; 27 | 28 | while (my $line = <>) { 29 | chomp $line; 30 | 31 | next if length($line) == 0; 32 | 33 | my @cols = split /\t/, $line, 3; 34 | if (@cols > 1) { 35 | my $num = $cols[0]; 36 | my $name = $cols[1]; 37 | my $descr = $cols[2]; 38 | 39 | my $var_name = uc $name; 40 | $var_name =~ s{ }{_}g; 41 | $var_name =~ s{-}{_}g; 42 | $var_name =~ s{\.}{_}g; 43 | if ($name =~ m{/}) { 44 | carp "$name: / is replaced with _."; 45 | $var_name =~ s{/}{_}g; 46 | } 47 | 48 | if ($registry) { 49 | print " registry.put($var_name.value(), $var_name);\n", 50 | } 51 | else { 52 | print " /**\n", 53 | $descr ? " * $descr: $num\n" : " * $name: $num\n", 54 | " */\n", 55 | " public static final $class_name $var_name\n", 56 | " = new $class_name(", 57 | $cast, 58 | $num, 59 | $descr ? qq{, "$descr");\n\n} : qq{, "$name");\n\n}; 60 | } 61 | } 62 | else { 63 | croak $line; 64 | } 65 | } 66 | 67 | sub pr_help { 68 | print << "_HELP_"; 69 | Usage: $Script [Options] 70 | 71 | Options 72 | -h|--help : Show this usage. 73 | -cn|--class-name : Class name. 74 | -c|--cast : cast. 75 | -r|--registry : registry. 76 | _HELP_ 77 | } 78 | -------------------------------------------------------------------------------- /www/Packet.md: -------------------------------------------------------------------------------- 1 | Packet 2 | ====== 3 | 4 | ### Packet and Packet Builder ### 5 | Packet and Packet Builder 6 | 7 | ### Packet and Payload ### 8 | Packet and Payload 9 | 10 | ### Packet Builder and Payload Builder ### 11 | Packet Builder and Payload Builder 12 | 13 | -------------------------------------------------------------------------------- /www/images/builder_payloadBuilder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/builder_payloadBuilder.png -------------------------------------------------------------------------------- /www/images/logos/Mr-pcap4j.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/Mr-pcap4j.png -------------------------------------------------------------------------------- /www/images/logos/pcap4j-logo-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4j-logo-color.png -------------------------------------------------------------------------------- /www/images/logos/pcap4j-logo-grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4j-logo-grey.png -------------------------------------------------------------------------------- /www/images/logos/pcap4j-logo-whitish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4j-logo-whitish.png -------------------------------------------------------------------------------- /www/images/logos/pcap4j-logomark-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4j-logomark-color.png -------------------------------------------------------------------------------- /www/images/logos/pcap4j-logomark-grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4j-logomark-grey.png -------------------------------------------------------------------------------- /www/images/logos/pcap4j-logomark-whitish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4j-logomark-whitish.png -------------------------------------------------------------------------------- /www/images/logos/pcap4j_logomark_slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4j_logomark_slack.png -------------------------------------------------------------------------------- /www/images/logos/pcap4jlogo.old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4jlogo.old.png -------------------------------------------------------------------------------- /www/images/logos/pcap4jlogo.sai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4jlogo.sai -------------------------------------------------------------------------------- /www/images/logos/pcap4jlogo_slack.old.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/logos/pcap4jlogo_slack.old.jpg -------------------------------------------------------------------------------- /www/images/packet_builder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/packet_builder.png -------------------------------------------------------------------------------- /www/images/packet_payload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/packet_payload.png -------------------------------------------------------------------------------- /www/images/pcap4j.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/pcap4j.pptx -------------------------------------------------------------------------------- /www/images/propertiesBasedPacketFactory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/propertiesBasedPacketFactory.png -------------------------------------------------------------------------------- /www/images/staticPacketFactory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/images/staticPacketFactory.png -------------------------------------------------------------------------------- /www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Pcap4J 6 | 7 | 8 |

9 |
10 | Pcap4J 11 |

A Java library for capturing, crafting, and sending packets

12 |
13 |

14 | Pcap4J is hosted on Github. Click on the link below to see the detail.
15 | https://github.com/kaitoy/pcap4j 16 |

17 |

18 | Pcap4J is distributed under the MIT license. It's been available on the Maven Central Repository since version 0.9.14:
19 | http://search.maven.org/#search|ga|1|g%3A%22org.pcap4j%22 20 |

21 | 22 |

Extra

23 |

24 | SNeO: An SNMP Network Simulator using Pcap4J is available at the link below. The documents will come someday. 25 | You can use SNeO in both personal and commercial for free. You can also copy and redistribute it with no restriction. 26 |
27 |

28 |
29 | SNeO is also hosted on Github: 30 | https://github.com/kaitoy/sneo 31 |

32 |
33 | 34 | -------------------------------------------------------------------------------- /www/logos.md: -------------------------------------------------------------------------------- 1 | Logos 2 | ===== 3 | 4 | #### Full color Pcap4J logo 5 | ![pcap4j-logo-color.png](https://github.com/kaitoy/pcap4j/raw/v1/www/images/logos/pcap4j-logo-color.png "Full color Pcap4J logo") 6 | 7 | #### Full color Pcap4J logomark 8 | ![pcap4j-logomark-color.png](https://github.com/kaitoy/pcap4j/raw/v1/www/images/logos/pcap4j-logomark-color.png "Full color Pcap4J logomark") 9 | 10 | #### Greyscale Pcap4J logo 11 | ![pcap4j-logo-grey.png](https://github.com/kaitoy/pcap4j/raw/v1/www/images/logos/pcap4j-logo-grey.png "Greyscale Pcap4J logo") 12 | 13 | #### Greyscale Pcap4J logomark 14 | ![pcap4j-logomark-grey.png](https://github.com/kaitoy/pcap4j/raw/v1/www/images/logos/pcap4j-logomark-grey.png "Greyscale Pcap4J logomark") 15 | 16 | #### Whitish Pcap4J logo 17 | ![pcap4j-logo-whitish.png](https://github.com/kaitoy/pcap4j/raw/v1/www/images/logos/pcap4j-logo-whitish.png "Whitish Pcap4J logo") 18 | 19 | #### Whitish Pcap4J logomark 20 | ![pcap4j-logomark-whitish.png](https://github.com/kaitoy/pcap4j/raw/v1/www/images/logos/pcap4j-logomark-whitish.png "Whitish Pcap4J logomark") 21 | 22 | #### Mr. Pcap4J 23 | ![Mr-pcap4j.png](https://github.com/kaitoy/pcap4j/raw/v1/www/images/logos/Mr-pcap4j.png "Mr. Pcap4J") 24 | 25 | #### Logo License 26 | Creative Commons License 27 | 28 | Pcap4J logo is licensed under the 29 | Creative Commons Attribution 4.0 International License. 30 |

31 | -------------------------------------------------------------------------------- /www/pcap4j_modules.md: -------------------------------------------------------------------------------- 1 | Pcap4j modules 2 | -------------- 3 | 4 | Pcap4j consists of the following modules: 5 | 6 | * pcap4j-core: The core module which includes pcap API wrappers, packet classes, and so on. 7 | 8 | module name: `org.pcap4j.core` 9 | * pcap4j-packetfactory-static: [The Static Packet Factory](/www/PacketFactory.md#static-packet-factory) module. 10 | 11 | module name: `org.pcap4j.packetfactory.statik` 12 | * pcap4j-packetfactory-propertiesbased: [The Properties-Based Packet Factory](/www/PacketFactory.md#properties-based-packet-factory) module. 13 | 14 | module name: `org.pcap4j.packetfactory.propertiesbased` 15 | * pcap4j-sample: The sample module. 16 | 17 | module name: `org.pcap4j.sample` 18 | * pcap4j-packettest: The module including test cases for packet classes. 19 | The tests are not run in this module. Instead, they are copied to pcap4j-packetfactory-static and 20 | pcap4j-packetfactory-propertiesbased and then run in the modules respectively. 21 | 22 | module name: `org.pcap4j.packettest` 23 | * pcap4j-distribution: The distribution module. 24 | This module is not built unless the maven profile ***distribution-assembly*** is activated. 25 | To build Pcap4J with it activated, for example, execute `mvn -P distribution-assembly install`. 26 | * pcap4j-test-coverage: The dummy module to measure test coverage of Pcap4J. 27 | This module is built when the maven profile ***test-coverage*** is activated. 28 | During a build, this module retrieves the source of pcap4j-core, pcap4j-packetfactory-static, 29 | and pcap4j-packettest to run tests included in pcap4j-packettest at one place, and then 30 | measure the test coverage of pcap4j-packettest with [JaCoCo](https://www.eclemma.org/jacoco/). 31 | 32 | To run a Pcap4J application, pcap4j-core's artifact is always needed. 33 | 34 | pcap4j-packetfactory-static and pcap4j-packetfactory-propertiesbased are Packet Factory modules. 35 | An artifact of either of them is needed for packet analysis. Without Packet Factory modules, Pcap4J always returns a [UnknownPacket](https://github.com/kaitoy/pcap4j/blob/v1/pcap4j-core/src/main/java/org/pcap4j/packet/UnknownPacket.java) object when it captures a packet. 36 | Learn more about Packet Factory [here](https://github.com/kaitoy/pcap4j/blob/v1/www/PacketFactory.md). 37 | 38 | The other modules' artifacts are not needed when you run a Pcap4J application. 39 | -------------------------------------------------------------------------------- /www/sample_Loop_ja.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/sample_Loop_ja.md -------------------------------------------------------------------------------- /www/sample_SendArpRequest_ja.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaitoy/pcap4j/0b4fad83439808c32f61054b2693641991572f6f/www/sample_SendArpRequest_ja.md --------------------------------------------------------------------------------