mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 23:07:59 +01:00
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];
|
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
|
bool CNetAddr::IsIPv4() const
|
||||||
{
|
{
|
||||||
return (memcmp(ip, pchIPv4, sizeof(pchIPv4)) == 0);
|
return (memcmp(ip, pchIPv4, sizeof(pchIPv4)) == 0);
|
||||||
|
|
|
@ -55,6 +55,7 @@ class CNetAddr
|
||||||
bool SetInternal(const std::string& name);
|
bool SetInternal(const std::string& name);
|
||||||
|
|
||||||
bool SetSpecial(const std::string &strName); // for Tor addresses
|
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 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 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)
|
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