10#ifdef STARFLEETTOOLBOX_EXPORTS
11#define ETHDEVICEPINGER __declspec(dllexport)
13#define ETHDEVICEPINGER __declspec(dllimport)
16#define DEFAULT_DATA_SIZE 32
17#define DEFAULT_SEND_COUNT 4
18#define DEFAULT_RECV_TIMEOUT 1000
19#define DEFAULT_TTL 128
20#define MAX_RECV_BUF_LEN 0xFFFF
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 string _lastKnownIp =
"";
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);
The ETHERNET device pinger: a helper to allow sending ICMP packets to a host.
Definition DevicePinger.h:29