Library: Net
Package: ICMP
Header: Poco/Net/ICMPPacket.h
This class is the ICMP packet abstraction.
Member Functions: errorDescription, getDataSize, maxPacketSize, packet, packetSize, sequence, setDataSize, time, typeDescription, validReplyID
ICMPPacket(
IPAddress::Family family,
int dataSize = 48
);
Creates an ICMPPacket of specified family.
~ICMPPacket();
Destroys the ICMPPacket.
std::string errorDescription(
Poco::UInt8 * buffer,
int length
);
Returns error description string. If supplied buffer contains an ICMP echo reply packet, an empty string is returned indicating the absence of error.
Supplied buffer includes IP header, ICMP header and data.
int getDataSize() const;
Returns data size.
int maxPacketSize() const;
Returns the total length of packet (header + data);
const Poco::UInt8 * packet();
Returns raw ICMP packet. ICMP header and data are included in the returned packet.
int packetSize() const;
Returns the total length of packet (header + data);
Poco::UInt16 sequence() const;
Returns the most recent sequence number generated.
void setDataSize(
int dataSize
);
Sets data size.
struct timeval time(
Poco::UInt8 * buffer = 0,
int length = 0
) const;
Returns current epoch time if either buffer or length are equal to zero. Otherwise, it extracts the time value from the supplied buffer and returns the extracted value.
Supplied buffer includes IP header, ICMP header and data.
std::string typeDescription(
int typeId
);
Returns the description of the packet type.
bool validReplyID(
Poco::UInt8 * buffer,
int length
) const;
Returns true if the extracted id is recognized (equals the process id).
Supplied buffer includes IP header, ICMP header and data.