CNetAddr: Add IsBindAny method to check for INADDR_ANY
This commit is contained in:
parent
3615003952
commit
d6a1287481
2 changed files with 11 additions and 0 deletions
|
@ -83,6 +83,16 @@ unsigned int CNetAddr::GetByte(int n) const
|
|||
return ip[15-n];
|
||||
}
|
||||
|
||||
bool CNetAddr::IsBindAny() const
|
||||
{
|
||||
const int cmplen = IsIPv4() ? 4 : 16;
|
||||
for (int i = 0; i < cmplen; ++i) {
|
||||
if (GetByte(i)) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CNetAddr::IsIPv4() const
|
||||
{
|
||||
return (memcmp(ip, pchIPv4, sizeof(pchIPv4)) == 0);
|
||||
|
|
|
@ -55,6 +55,7 @@ class CNetAddr
|
|||
bool SetInternal(const std::string& name);
|
||||
|
||||
bool SetSpecial(const std::string &strName); // for Tor addresses
|
||||
bool IsBindAny() const; // INADDR_ANY equivalent
|
||||
bool IsIPv4() const; // IPv4 mapped address (::FFFF:0:0/96, 0.0.0.0/0)
|
||||
bool IsIPv6() const; // IPv6 address (not mapped IPv4, not Tor)
|
||||
bool IsRFC1918() const; // IPv4 private networks (10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12)
|
||||
|
|
Loading…
Add table
Reference in a new issue