PcapPlusPlus
IpUtils.h
Go to the documentation of this file.
1 #ifndef PCAPPP_IP_UTILS
2 #define PCAPPP_IP_UTILS
3 
4 #include <stdint.h>
5 #ifdef LINUX
6 #include <in.h>
7 #include <arpa/inet.h>
8 #endif
9 #ifdef MAC_OS_X
10 #include <netinet/in.h>
11 #include <arpa/inet.h>
12 #endif
13 #if defined(WIN32) || defined(WINx64) || defined(PCAPPP_MINGW_ENV)
14 #include <winsock2.h>
15 #include <ws2tcpip.h>
16 #endif
17 
19 
20 #if defined(WIN32) && !defined(_MSC_VER)
21 
29 const char* inet_ntop(int af, const void* src, char* dst, size_t size);
30 
42 int inet_pton(int af, const char* src, void* dst);
43 #endif
44 
45 
50 namespace pcpp
51 {
52 
58  in_addr* sockaddr2in_addr(struct sockaddr *sa);
59 
65  in6_addr* sockaddr2in6_addr(struct sockaddr *sa);
66 
72  void sockaddr2string(struct sockaddr *sa, char* resultString);
73 
79  uint32_t in_addr2int(in_addr inAddr);
80 
84  template<typename T>
85  struct ScalarBuffer
86  {
90  T* buffer;
91 
95  size_t len;
96  };
97 
104  uint16_t compute_checksum(ScalarBuffer<uint16_t> vec[], size_t vecSize);
105 
113  uint32_t fnv_hash(ScalarBuffer<uint8_t> vec[], size_t vecSize);
114 
121  uint32_t fnv_hash(uint8_t* buffer, size_t bufSize);
122 
123 } // namespace pcpp
124 #endif
uint32_t fnv_hash(ScalarBuffer< uint8_t > vec[], size_t vecSize)
The main namespace for the PcapPlusPlus lib.
in6_addr * sockaddr2in6_addr(struct sockaddr *sa)
Definition: IpUtils.h:85
uint32_t in_addr2int(in_addr inAddr)
in_addr * sockaddr2in_addr(struct sockaddr *sa)
void sockaddr2string(struct sockaddr *sa, char *resultString)
size_t len
Definition: IpUtils.h:95
uint16_t compute_checksum(ScalarBuffer< uint16_t > vec[], size_t vecSize)
T * buffer
Definition: IpUtils.h:90
const char * inet_ntop(int af, const void *src, char *dst, size_t size)
int inet_pton(int af, const char *src, void *dst)