KNetwork::KIpAddress
#include <k3socketaddress.h>
Public Member Functions | |
KIpAddress () | |
KIpAddress (const char *addr) | |
KIpAddress (const KIpAddress &other) | |
KIpAddress (const QString &addr) | |
KIpAddress (const void *addr, int version=4) | |
KIpAddress (quint32 ip4addr) | |
~KIpAddress () | |
const void * | addr () const |
bool | compare (const KIpAddress &other, bool checkMapped=true) const |
quint32 | IPv4Addr (bool convertMapped=true) const |
bool | isClassA () const |
bool | isClassB () const |
bool | isClassC () const |
bool | isClassD () const |
bool | isGlobal () const |
bool | isIPv4Addr () const |
bool | isIPv6Addr () const |
bool | isLinkLocal () const |
bool | isLocalhost () const |
bool | isLoopback () const |
bool | isMulticast () const |
bool | isMulticastGlobal () const |
bool | isMulticastLinkLocal () const |
bool | isMulticastNodeLocal () const |
bool | isMulticastOrgLocal () const |
bool | isMulticastSiteLocal () const |
bool | isSiteLocal () const |
bool | isUnspecified () const |
bool | isV4Compat () const |
bool | isV4Mapped () const |
KIpAddress & | operator= (const KIpAddress &other) |
bool | operator== (const KIpAddress &other) const |
bool | setAddress (const char *address) |
bool | setAddress (const QString &address) |
bool | setAddress (const void *raw, int version=4) |
QString | toString () const |
int | version () const |
Static Public Attributes | |
static const KIpAddress | anyhostV4 |
static const KIpAddress | anyhostV6 |
static const KIpAddress | localhostV4 |
static const KIpAddress | localhostV6 |
Protected Attributes | |
quint32 | m_data [4] |
char | m_version |
Detailed Description
An IP address.
This class represents one IP address, version 4 or 6. This is only the address, not including port information or other data.
It is not a good programming practice to create address from objects like this. Instead, prefer a more thorough function like KResolver::resolve(), which also handle extra information like scope ids.
This is a light-weight class. Most of the member functions are inlined and there are no virtual functions. This object's size should be less than 20 bytes. Also note that there is no sharing of data.
- Deprecated:
- Use KSocketFactory or KLocalSocket instead
Definition at line 63 of file k3socketaddress.h.
Constructor & Destructor Documentation
◆ KIpAddress() [1/6]
|
inline |
Default constructor.
Creates an empty address. It defaults to IP version 4.
Definition at line 70 of file k3socketaddress.h.
◆ KIpAddress() [2/6]
|
inline |
Copy constructor.
Copies the data from the other object.
Data is not shared.
- Parameters
-
other the other
Definition at line 81 of file k3socketaddress.h.
◆ KIpAddress() [3/6]
|
inline |
Creates an object from the given string representation.
The IP version is guessed from the address format.
- Parameters
-
addr the address
Definition at line 93 of file k3socketaddress.h.
◆ KIpAddress() [4/6]
|
inline |
Creates an object from the given string representation.
The IP version is guessed from the address format.
- Parameters
-
addr the address
Definition at line 105 of file k3socketaddress.h.
◆ KIpAddress() [5/6]
|
inline |
Creates an object from the given raw data and IP version.
- Parameters
-
addr the raw data version the IP version (4 or 6)
Definition at line 116 of file k3socketaddress.h.
◆ KIpAddress() [6/6]
|
inline |
This is a convenience constructor.
Constructs an object from the given IPv4 address in the form of an integer.
Note: do not write code to depend on IPv4 addresses being integer types. Instead, treat them as a special type, like a KIpAddress or the system's in_addr.
- Parameters
-
ip4addr the IPv4 address
Definition at line 131 of file k3socketaddress.h.
◆ ~KIpAddress()
|
inline |
Destructor.
This frees resources associated with this object.
Note: destructor is non-virtual. The compiler will happily optimize it out of the way.
Definition at line 142 of file k3socketaddress.h.
Member Function Documentation
◆ addr()
|
inline |
Returns a pointer to binary raw data representing the address.
Definition at line 239 of file k3socketaddress.h.
◆ compare()
bool KIpAddress::compare | ( | const KIpAddress & | other, |
bool | checkMapped = true |
||
) | const |
Compares this address against the other, supplied one and return true if they match.
The checkMapped
parameter controls whether a check for an IPv6 v4-mapped address will be performed.
An IPv6 v4-mapped address is an IPv6 address that is, for all purposes, equivalent to an IPv4 one. The default behaviour of this function is to take that into account. If you want a strict matching, pass false to the checkMapped
parameter.
- Parameters
-
other the other IP address checkMapped whether v4-mapped addresses will be taken into account
Definition at line 102 of file k3socketaddress.cpp.
◆ IPv4Addr()
|
inline |
This is a convenience function.
Returns the IPv4 address in a 32-bit integer. The result is only valid if isIPv4Addr() returns true. Alternatively, if the contained IPv6 address is a v4-mapped one and the convertMapped
parameter is true, the result will also be valid.
Note: you should not treat IP addresses as integers. Instead, use types defined for that purpose, such as KIpAddress or the system's in_addr type.
- Bug:
- Check if byte ordering is done right
Definition at line 257 of file k3socketaddress.h.
◆ isClassA()
|
inline |
Returns true if this is an IPv4 class A address, i.e., from 0.0.0.0 to 127.255.255.255.
This function does not test for v4-mapped addresses.
Definition at line 294 of file k3socketaddress.h.
◆ isClassB()
|
inline |
Returns true if this is an IPv4 class B address, i.e., one from 128.0.0.0 to 191.255.255.255.
This function does not test for v4-mapped addresses.
Definition at line 305 of file k3socketaddress.h.
◆ isClassC()
|
inline |
Returns true if this is an IPv4 class C address, i.e., one from 192.0.0.0 to 223.255.255.255.
This function does not test for v4-mapped addresses.
Definition at line 316 of file k3socketaddress.h.
◆ isClassD()
|
inline |
Returns true if this is an IPv4 class D (a.k.a.
multicast) address.
Note: this function is not the same as isMulticast(). isMulticast also tests for IPv6 multicast addresses.
Definition at line 327 of file k3socketaddress.h.
◆ isGlobal()
|
inline |
Returns true if this is a global IPv6 address.
Definition at line 375 of file k3socketaddress.h.
◆ isIPv4Addr()
|
inline |
Returns true if this is an IPv4 address.
Definition at line 192 of file k3socketaddress.h.
◆ isIPv6Addr()
|
inline |
Returns true if this is an IPv6 address.
Definition at line 200 of file k3socketaddress.h.
◆ isLinkLocal()
|
inline |
Returns true if this is an IPv6 link-local address.
Definition at line 349 of file k3socketaddress.h.
◆ isLocalhost()
|
inline |
Returns true if this is either the IPv4 or the IPv6 localhost address.
Definition at line 275 of file k3socketaddress.h.
◆ isLoopback()
|
inline |
This is an alias for isLocalhost().
Definition at line 283 of file k3socketaddress.h.
◆ isMulticast()
|
inline |
Returns true if this is a multicast address, be it IPv4 or IPv6.
Definition at line 335 of file k3socketaddress.h.
◆ isMulticastGlobal()
|
inline |
Returns true if this is an IPv6 global multicast address.
Definition at line 441 of file k3socketaddress.h.
◆ isMulticastLinkLocal()
|
inline |
Returns true if this is an IPv6 link-local multicast address.
Definition at line 417 of file k3socketaddress.h.
◆ isMulticastNodeLocal()
|
inline |
Returns true if this is an IPv6 node-local multicast address.
Definition at line 409 of file k3socketaddress.h.
◆ isMulticastOrgLocal()
|
inline |
Returns true if this is an IPv6 organisational-local multicast address.
Definition at line 433 of file k3socketaddress.h.
◆ isMulticastSiteLocal()
|
inline |
Returns true if this is an IPv6 site-local multicast address.
Definition at line 425 of file k3socketaddress.h.
◆ isSiteLocal()
|
inline |
Returns true if this is an IPv6 site-local address.
Definition at line 362 of file k3socketaddress.h.
◆ isUnspecified()
|
inline |
Returns true if this is the IPv4 or IPv6 unspecified address.
Definition at line 267 of file k3socketaddress.h.
◆ isV4Compat()
|
inline |
Returns true if this is a v4-compat IPv6 address.
Definition at line 397 of file k3socketaddress.h.
◆ isV4Mapped()
|
inline |
Returns true if this is a v4-mapped IPv6 address.
Definition at line 383 of file k3socketaddress.h.
◆ operator=()
KIpAddress & KIpAddress::operator= | ( | const KIpAddress & | other | ) |
Copy operator.
Copies the data from the other object into this one.
- Parameters
-
other the object to copy
Definition at line 92 of file k3socketaddress.cpp.
◆ operator==()
|
inline |
Returns true if the two addresses match.
This function performs a v4-mapped check.
- See also
- compare
Definition at line 159 of file k3socketaddress.h.
◆ setAddress() [1/3]
bool KIpAddress::setAddress | ( | const char * | address | ) |
Sets the address to the given string representation.
- Returns
- true if the address was successfully parsed; otherwise returns false and leaves the object unchanged.
Definition at line 167 of file k3socketaddress.cpp.
◆ setAddress() [2/3]
bool KIpAddress::setAddress | ( | const QString & | address | ) |
Sets the address to the given string representation.
- Returns
- true if the address was successfully parsed; otherwise returns false and leaves the object unchanged.
Definition at line 135 of file k3socketaddress.cpp.
◆ setAddress() [3/3]
bool KIpAddress::setAddress | ( | const void * | raw, |
int | version = 4 |
||
) |
Sets the address to the given raw binary representation.
- Parameters
-
raw a pointer to the raw binary data version the IP version
- Returns
- true if the address was successfully parsed; otherwise returns false and leaves the object unchanged.
Definition at line 173 of file k3socketaddress.cpp.
◆ toString()
QString KIpAddress::toString | ( | ) | const |
Returns the address as a string.
Definition at line 192 of file k3socketaddress.cpp.
◆ version()
|
inline |
Retrieves the IP version in this object.
- Returns
- the version: 4 or 6
Definition at line 184 of file k3socketaddress.h.
Member Data Documentation
◆ anyhostV4
|
static |
the any host or undefined address in IPv4 (0.0.0.0)
Definition at line 455 of file k3socketaddress.h.
◆ anyhostV6
|
static |
the any host or undefined address in IPv6 (::)
Definition at line 460 of file k3socketaddress.h.
◆ localhostV4
|
static |
localhost in IPv4 (127.0.0.1)
Definition at line 453 of file k3socketaddress.h.
◆ localhostV6
|
static |
localhost in IPv6 (::1)
Definition at line 458 of file k3socketaddress.h.
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Jan 30 2023 04:01:51 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.