53 lines
1.0 KiB
C++
53 lines
1.0 KiB
C++
#ifndef IP_H
|
|
#define IP_H
|
|
|
|
#include "base.h"
|
|
|
|
namespace xdb {
|
|
|
|
struct ip_t {
|
|
unsigned char p[16];
|
|
|
|
ip_t();
|
|
ip_t(const char* p);
|
|
// val 为 0 或 255 时, 将 ip 的后几位置为 val
|
|
ip_t(const ip_t& rhs, int val = -1);
|
|
|
|
bool from_str(const string& str);
|
|
void from_xdb(const char str[16]);
|
|
|
|
ip_t& operator=(const ip_t& rhs);
|
|
|
|
int compare(const ip_t& rhs) const;
|
|
bool operator<(const ip_t& rhs) const;
|
|
bool operator<=(const ip_t& rhs) const;
|
|
bool operator>(const ip_t& rhs) const;
|
|
bool operator>=(const ip_t& rhs) const;
|
|
bool operator==(const ip_t& rhs) const;
|
|
bool operator!=(const ip_t& rhs) const;
|
|
|
|
string to_string() const;
|
|
string to_bit() const;
|
|
};
|
|
|
|
ip_t operator+(const ip_t& lhs, int v);
|
|
ip_t operator-(const ip_t& lhs, int v);
|
|
|
|
struct node_t {
|
|
ip_t ip1;
|
|
ip_t ip2;
|
|
string region;
|
|
|
|
node_t();
|
|
node_t(char* buf);
|
|
|
|
bool operator<(const node_t& rhs) const;
|
|
|
|
string to_string() const;
|
|
string to_bit() const;
|
|
};
|
|
|
|
} // namespace xdb
|
|
|
|
#endif
|