mirror of
https://github.com/esp8266/Arduino.git
synced 2025-09-08 06:28:00 +03:00
Netump Initial commit (#7527)
This commit is contained in:
103
libraries/Netdump/src/NetdumpIP.h
Normal file
103
libraries/Netdump/src/NetdumpIP.h
Normal file
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
NetdumpIP.h
|
||||
|
||||
Created on: 18 mei 2019
|
||||
Author: Herman
|
||||
*/
|
||||
|
||||
#ifndef LIBRARIES_ESPGOODIES_HR_SRC_NETDUMP_NETDUMPIP_H_
|
||||
#define LIBRARIES_ESPGOODIES_HR_SRC_NETDUMP_NETDUMPIP_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <lwip/init.h>
|
||||
#include <StreamString.h>
|
||||
#include <IPAddress.h>
|
||||
|
||||
namespace NetCapture
|
||||
{
|
||||
|
||||
class NetdumpIP
|
||||
{
|
||||
public:
|
||||
NetdumpIP();
|
||||
|
||||
NetdumpIP(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet);
|
||||
NetdumpIP(const uint8_t *address, bool V4 = true);
|
||||
NetdumpIP(const IPAddress& ip);
|
||||
NetdumpIP(const String& ip);
|
||||
|
||||
uint8_t& operator[](int index)
|
||||
{
|
||||
return rawip[index];
|
||||
}
|
||||
|
||||
bool fromString(const char *address);
|
||||
|
||||
String toString();
|
||||
|
||||
private:
|
||||
enum class IPversion {UNSET, IPV4, IPV6};
|
||||
IPversion ipv = IPversion::UNSET;
|
||||
|
||||
uint8_t rawip[16] = {0};
|
||||
|
||||
void setV4()
|
||||
{
|
||||
ipv = IPversion::IPV4;
|
||||
};
|
||||
void setV6()
|
||||
{
|
||||
ipv = IPversion::IPV6;
|
||||
};
|
||||
void setUnset()
|
||||
{
|
||||
ipv = IPversion::UNSET;
|
||||
};
|
||||
bool isV4() const
|
||||
{
|
||||
return (ipv == IPversion::IPV4);
|
||||
};
|
||||
bool isV6() const
|
||||
{
|
||||
return (ipv == IPversion::IPV6);
|
||||
};
|
||||
bool isUnset() const
|
||||
{
|
||||
return (ipv == IPversion::UNSET);
|
||||
};
|
||||
bool isSet() const
|
||||
{
|
||||
return (ipv != IPversion::UNSET);
|
||||
};
|
||||
|
||||
bool compareRaw(IPversion v, const uint8_t* a, const uint8_t* b) const;
|
||||
bool compareIP(const IPAddress& ip) const;
|
||||
bool compareIP(const NetdumpIP& nip) const;
|
||||
|
||||
bool fromString4(const char *address);
|
||||
bool fromString6(const char *address);
|
||||
|
||||
size_t printTo(Print& p);
|
||||
public:
|
||||
bool operator==(const IPAddress& addr) const
|
||||
{
|
||||
return compareIP(addr);
|
||||
};
|
||||
bool operator!=(const IPAddress& addr)
|
||||
{
|
||||
return compareIP(addr);
|
||||
};
|
||||
bool operator==(const NetdumpIP& addr)
|
||||
{
|
||||
return compareIP(addr);
|
||||
};
|
||||
bool operator!=(const NetdumpIP& addr)
|
||||
{
|
||||
return !compareIP(addr);
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
} // namespace NetCapture
|
||||
|
||||
#endif /* LIBRARIES_ESPGOODIES_HR_SRC_NETDUMP_NETDUMPIP_H_ */
|
Reference in New Issue
Block a user