on_ip_packet Event

Fired whenever a packet is received.

Syntax

class IPMonitorIPPacketEventParams(object):
  @property
  def source_address() -> str: ...
  @property
  def source_port() -> int: ...
  @property
  def destination_address() -> str: ...
  @property
  def destination_port() -> int: ...
  @property
  def ip_version() -> int: ...
  @property
  def tos() -> int: ...
  @property
  def id() -> int: ...
  @property
  def flags() -> int: ...
  @property
  def offset() -> int: ...
  @property
  def ttl() -> int: ...
  @property
  def checksum() -> int: ...
  @property
  def ip_protocol() -> int: ...
  @property
  def payload() -> bytes: ...
  @property
  def timestamp() -> int: ...

# In class IPMonitor:
@property
def on_ip_packet() -> Callable[[IPMonitorIPPacketEventParams], None]: ...
@on_ip_packet.setter
def on_ip_packet(event_hook: Callable[[IPMonitorIPPacketEventParams], None]) -> None: ...

Remarks

When active is True or parse_pcap_file is called, the class will listen for network traffic or parse the provided file, respectively. For each packet sent across the interface in local_host, the class will parse the packet and fire an on_ip_packet event with the header fields and payload. The parameters are defined as follows:

SourceAddressThe IP address of the originating host in IP dotted format.
DestinationAddressThe IP address of the destination host in IP dotted format.
IPVersionThe IP protocol version being used by this packet.
TOSThe type of service being used by this packet.
IdThe packet id used to identify and track packets.
FlagsFlags relating to the status of the packet and desired responses.
OffsetThe fragment offset of this packet in relation to larger data.
TTLThe time to live for this packet.
IPProtocolThe IP protocol used in the payload.
PayloadThe data field of the IP packet. This field may contain extra IP headers, depending upon the IP protocol used to create it.
TimestampThis is the number of microseconds from the UNIX Epoch (1977-01-01). This is only available when parsing files.

TOS

Bit 0, 1, 2Precedence (see below)
Bit 3Delay (0 = Normal, 1 = Low)
Bit 4Throughput (0 = Normal, 1 = High)
Bit 5Reliability (0 = Normal, 1 = High)

Precedence

000Routine
001Priority
010Immediate
011Flash
100Flash Override
101CRITIC/ECP
110Internetwork Control
111Network Control

Flags

Bit 0Always zero
Bit 1Don't Fragment (0 = May Fragment, 1 = Don't Fragment)
Bit 2More Fragments (0 = Last Fragment, 1 = More Fragments)

IPProtocol - for a full list, visit www.iana.org.

1ICMP
2IGMP
4IP
6TCP
17UDP

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks 2020 Python Edition - Version 20.0 [Build 8307]