53 void SetAddress(
string address);
71 SOCKET _s = INVALID_SOCKET;
72 WSAOVERLAPPED _recvol;
73 char* _icmpbuf = NULL;
75 int _receiveTimeOut = DEFAULT_RECV_TIMEOUT;
76 struct addrinfo* _dest = NULL;
79 int _addressFamily = AF_INET,
80 _protocol = IPPROTO_ICMP,
82 int _dataSize = DEFAULT_DATA_SIZE;
83 BOOL _recordRoute = FALSE;
84 char* _destination = NULL,
85 _recvbuf[MAX_RECV_BUF_LEN];
86 int _recvbuflen = MAX_RECV_BUF_LEN;
87 char _lastKnownIp[100];
98 void InitIcmpHeader(
char* buf,
int datasize);
106 USHORT Checksum(USHORT* buffer,
int size);
111 void SetIcmpSequence(
char* buf);
125 void ComputeIcmpChecksum(SOCKET s,
char* buf,
int packetlen,
struct addrinfo* dest);
137 int PostRecvfrom(SOCKET s,
char* buf,
int buflen, SOCKADDR* from,
int* fromlen, WSAOVERLAPPED* ol);
145 int SetTtl(SOCKET s,
int ttl);
159 struct addrinfo* ResolveAddress(
char* addr,
char* port,
int af,
int type,
int proto);