KNetwork::KIpAddress Class Reference

`#include <ksocketaddress.h>`

## Public Member Functions

| KIpAddress ()
| KIpAddress (const KIpAddress &other)
| KIpAddress (const QString &addr)
| KIpAddress (const char *addr)
| KIpAddress (const void *addr, int version=4)
| KIpAddress (Q_UINT32 ip4addr)
| ~KIpAddress ()
KIpAddress & | operator= (const KIpAddress &other)
bool | operator== (const KIpAddress &other) const
bool | compare (const KIpAddress &other, bool checkMapped=true) const
int | version () const
bool | isIPv4Addr () const
bool | isIPv6Addr () const
bool | setAddress (const QString &address)
bool | setAddress (const char *address)
bool | setAddress (const void *raw, int version=4)
QString | toString () const
const void * | addr () const
Q_UINT32 | IPv4Addr (bool convertMapped=true) const
Q_UINT32 | hostIPv4Addr (bool convertMapped=true) const
bool | isUnspecified () const
bool | isLocalhost () const
bool | isLoopback () const
bool | isClassA () const
bool | isClassB () const
bool | isClassC () const
bool | isClassD () const
bool | isMulticast () const
bool | isLinkLocal () const
bool | isSiteLocal () const
bool | isGlobal () const
bool | isV4Mapped () const
bool | isV4Compat () const
bool | isMulticastNodeLocal () const
bool | isMulticastLinkLocal () const
bool | isMulticastSiteLocal () const
bool | isMulticastOrgLocal () const
bool | isMulticastGlobal () const

## Static Public Attributes

static const KIpAddress | localhostV4
static const KIpAddress | anyhostV4
static const KIpAddress | localhostV6
static const KIpAddress | anyhostV6

## Protected Attributes

Q_UINT32 | 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.

Author
  Thiago Macieira thiag.nosp@m.o.ma.nosp@m.cieir.nosp@m.a@kd.nosp@m.email.nosp@m..net

Definition at line 62 of file ksocketaddress.h.

## Constructor & Destructor Documentation

KNetwork::KIpAddress::KIpAddress | ( |  | ) |

inline

Default constructor.

Creates an empty address. It defaults to IP version 4.

Definition at line 69 of file ksocketaddress.h.

KNetwork::KIpAddress::KIpAddress | ( | const KIpAddress & | other | ) |

inline

Copy constructor.

Copies the data from the other object.

Data is not shared.

Parameters

  other | the other

Definition at line 80 of file ksocketaddress.h.

KNetwork::KIpAddress::KIpAddress | ( | const QString & | addr | ) |

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 90 of file ksocketaddress.h.

KNetwork::KIpAddress::KIpAddress | ( | const char * | addr | ) |

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 100 of file ksocketaddress.h.

KNetwork::KIpAddress::KIpAddress | ( | const void * | addr,
|  | int | version = `4`
| ) |  |

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 109 of file ksocketaddress.h.

KNetwork::KIpAddress::KIpAddress | ( | Q_UINT32 | ip4addr | ) |

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 122 of file ksocketaddress.h.

KNetwork::KIpAddress::~KIpAddress | ( |  | ) |

inline

Destructor.

This frees resources associated with this object.

Note: destructor is non-virtual. The compiler will happily optimise it out of the way.

Definition at line 131 of file ksocketaddress.h.

## Member Function Documentation

const void* KNetwork::KIpAddress::addr | ( |  | ) | const

inline

Returns a pointer to binary raw data representing the address.

Definition at line 220 of file ksocketaddress.h.

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 96 of file ksocketaddress.cpp.

Q_UINT32 KIpAddress::hostIPv4Addr | ( | bool | convertMapped = `true` | ) | const

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. The address returned is in host byte order.

Definition at line 209 of file ksocketaddress.cpp.

Q_UINT32 KNetwork::KIpAddress::IPv4Addr | ( | bool | convertMapped = `true` | ) | const

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. The address returned is in network byte order.

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.

Definition at line 235 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isClassA | ( |  | ) | const

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 277 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isClassB | ( |  | ) | const

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 286 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isClassC | ( |  | ) | const

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 295 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isClassD | ( |  | ) | const

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 304 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isGlobal | ( |  | ) | const

inline

Returns true if this is a global IPv6 address.

Definition at line 342 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isIPv4Addr | ( |  | ) | const

inline

Returns true if this is an IPv4 address.

Definition at line 177 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isIPv6Addr | ( |  | ) | const

inline

Returns true if this is an IPv6 address.

Definition at line 183 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isLinkLocal | ( |  | ) | const

inline

Returns true if this is an IPv6 link-local address.

Definition at line 320 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isLocalhost | ( |  | ) | const

inline

Returns true if this is either the IPv4 or the IPv6 localhost address.

Definition at line 262 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isLoopback | ( |  | ) | const

inline

This is an alias for isLocalhost.

Definition at line 268 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isMulticast | ( |  | ) | const

inline

Returns true if this is a multicast address, be it IPv4 or IPv6.

Definition at line 310 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isMulticastGlobal | ( |  | ) | const

inline

Returns true if this is an IPv6 global multicast address.

Definition at line 394 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isMulticastLinkLocal | ( |  | ) | const

inline

Returns true if this is an IPv6 link-local multicast address.

Definition at line 376 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isMulticastNodeLocal | ( |  | ) | const

inline

Returns true if this is an IPv6 node-local multicast address.

Definition at line 370 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isMulticastOrgLocal | ( |  | ) | const

inline

Returns true if this is an IPv6 organisational-local multicast address.

Definition at line 388 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isMulticastSiteLocal | ( |  | ) | const

inline

Returns true if this is an IPv6 site-local multicast address.

Definition at line 382 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isSiteLocal | ( |  | ) | const

inline

Returns true if this is an IPv6 site-local address.

Definition at line 331 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isUnspecified | ( |  | ) | const

inline

Returns true if this is the IPv4 or IPv6 unspecified address.

Definition at line 256 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isV4Compat | ( |  | ) | const

inline

Returns true if this is a v4-compat IPv6 address.

Definition at line 360 of file ksocketaddress.h.

bool KNetwork::KIpAddress::isV4Mapped | ( |  | ) | const

inline

Returns true if this is a v4-mapped IPv6 address.

Definition at line 348 of file ksocketaddress.h.

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 87 of file ksocketaddress.cpp.

bool KNetwork::KIpAddress::operator== | ( | const KIpAddress & | other | ) | const

inline

Returns true if the two addresses match.

This function performs a v4-mapped check.

See also
  compare

Definition at line 148 of file ksocketaddress.h.

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 129 of file ksocketaddress.cpp.

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 166 of file ksocketaddress.cpp.

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 172 of file ksocketaddress.cpp.

QString KIpAddress::toString | ( |  | ) | const

Returns the address as a string.

Definition at line 189 of file ksocketaddress.cpp.

int KNetwork::KIpAddress::version | ( |  | ) | const

inline

Retrieves the IP version in this object.

Returns
  the version: 4 or 6

Definition at line 171 of file ksocketaddress.h.

## Member Data Documentation

const KIpAddress KIpAddress::anyhostV4

static

the any host or undefined address in IPv4 (0.0.0.0)

Definition at line 406 of file ksocketaddress.h.

const KIpAddress KIpAddress::anyhostV6

static

the any host or undefined address in IPv6 (::)

Definition at line 411 of file ksocketaddress.h.

const KIpAddress KNetwork::KIpAddress::localhostV4

static

localhost in IPv4 (127.0.0.1)

Definition at line 404 of file ksocketaddress.h.

const KIpAddress KNetwork::KIpAddress::localhostV6

static

localhost in IPv6 (::1)

Definition at line 409 of file ksocketaddress.h.

The documentation for this class was generated from the following files:

- ksocketaddress.h
- ksocketaddress.cpp

KDE Home | KDE Accessibility Home | Description of Access Keys