22 #include <lwip/init.h>
23 #include <lwip/ip_addr.h>
27 #if LWIP_VERSION_MAJOR == 2
28 #define LWIP_IP_ADDR_T const ip_addr_t
32 #define IP_ADDR4(IP, A, B, C, D) IP4_ADDR(IP, A, B, C, D)
33 #define ip_addr_set_ip4_u32(IP, U32) ip4_addr_set_u32(IP, U32)
34 #define ip_addr_get_ip4_u32(IP) ip4_addr_get_u32(IP)
35 #define ip_2_ip4(IP) (IP)
36 #define ip4_addr_netcmp(A, B, C) ip_addr_netcmp(A, B, C)
37 #define LWIP_IP_ADDR_T ip_addr_t
49 void fromString(
const String& address);
57 IpAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet)
59 IP_ADDR4(&address, first_octet, second_octet, third_octet, fourth_octet);
77 #if LWIP_VERSION_MAJOR == 2 && LWIP_IPV6
80 ip_addr_copy_from_ip4(address, addr);
89 IP_ADDR4(&this->address, address[0], address[1], address[2], address[3]);
97 operator uint32_t()
const
112 #if LWIP_VERSION_MAJOR == 2 && LWIP_IPV6
126 return ip_addr_cmp(&address, &otherAddress.address);
136 return !ip_addr_cmp(&address, &otherAddress.address);
146 return ip_addr_isany(&address);
153 return ip_addr_netcmp(&address, &addr.address,
ip_2_ip4(&mask.address));
163 return reinterpret_cast<const uint8_t*
>(&
ip_2_ip4(&address)->addr)[index];
172 return reinterpret_cast<uint8_t*
>(&
ip_2_ip4(&address)->addr)[index];
178 IP_ADDR4(&this->address, address[0], address[1], address[2], address[3]);
203 #define INADDR_NONE IpAddress()
ip_addr_t ip4_addr_t
Definition: IpAddress.h:31
#define ip_addr_get_ip4_u32(IP)
Definition: IpAddress.h:34
struct ip_addr ip_addr_t
Definition: IpAddress.h:30
#define ip_addr_set_ip4_u32(IP, U32)
Definition: IpAddress.h:33
String toString(IpAddress address)
Definition: IpAddress.h:197
#define IP_ADDR4(IP, A, B, C, D)
Definition: IpAddress.h:32
#define ip_2_ip4(IP)
Definition: IpAddress.h:35
bool fromString(const char *s, Uuid &uuid)
Definition: Uuid.h:149
A class to make it easier to handle and pass around IP addresses.
Definition: IpAddress.h:45
bool isNull() const
Definition: IpAddress.h:144
bool operator!=(const uint8_t addr[4]) const
Definition: IpAddress.h:139
uint8_t operator[](int index) const
Definition: IpAddress.h:157
IpAddress & operator=(uint32_t address)
Definition: IpAddress.h:182
bool operator==(const uint8_t addr[4]) const
Definition: IpAddress.h:129
IpAddress & operator=(const uint8_t address[4])
Definition: IpAddress.h:176
uint8_t & operator[](int index)
Definition: IpAddress.h:166
IpAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet)
Definition: IpAddress.h:57
bool compare(const IpAddress &addr, const IpAddress &mask) const
Definition: IpAddress.h:151
IpAddress(uint32_t address)
Definition: IpAddress.h:62
IpAddress(ip_addr_t &addr)
Definition: IpAddress.h:67
IpAddress(const ip_addr_t &addr)
Definition: IpAddress.h:72
IpAddress(const uint8_t address[4])
Definition: IpAddress.h:87
IpAddress & operator=(const String &address)
Definition: IpAddress.h:188
bool operator!=(const IpAddress &otherAddress) const
Definition: IpAddress.h:134
size_t printTo(Print &p) const
bool operator==(const IpAddress &otherAddress) const
Definition: IpAddress.h:124
IpAddress()
Definition: IpAddress.h:53
IpAddress(const String &address)
Definition: IpAddress.h:92
Provides formatted output to stream.
Definition: Print.h:37
The String class.
Definition: WString.h:137