Definitions for internet operations.
More...
#include <sys/cdefs.h>
#include <netinet/in.h>
#include <inttypes.h>
Go to the source code of this file.
|
uint32_t | htonl (uint32_t value) |
| Convert a 32-bit value from host byte order to network byte order. More...
|
|
uint32_t | ntohl (uint32_t value) |
| Convert a 32-bit value from network byte order to host byte order. More...
|
|
uint16_t | htons (uint16_t value) |
| Convert a 16-bit value from host byte order to network byte order. More...
|
|
uint16_t | ntohs (uint16_t value) |
| Convert a 16-bit value from network byte order to host byte order. More...
|
|
in_addr_t | inet_addr (const char *cp) |
| Convert a string representation of an IPv4 address to an in_addr_t. More...
|
|
int | inet_aton (const char *cp, struct in_addr *pin) |
| Convert a string representation of an IPv4 address to a struct in_addr. More...
|
|
int | inet_pton (int af, const char *src, void *dst) |
| Convert a string representation of an IP address to its binary representation. More...
|
|
const char * | inet_ntop (int af, const void *src, char *dst, socklen_t size) |
| Convert a binary representation of an IP address to a string. More...
|
|
char * | inet_ntoa (struct in_addr addr) |
| Convert a binary representation of an IPv4 address to a string. More...
|
|
Definitions for internet operations.
This file contains the standard definitions (as directed by the POSIX 2008 standard) for several internet-related functions.
- Author
- Lawrence Sebald
uint32_t htonl |
( |
uint32_t |
value | ) |
|
Convert a 32-bit value from host byte order to network byte order.
- Parameters
-
value | The value to convert. |
- Returns
- value converted to network byte order.
uint16_t htons |
( |
uint16_t |
value | ) |
|
Convert a 16-bit value from host byte order to network byte order.
- Parameters
-
value | The value to convert. |
- Returns
- value converted to network byte order.
Convert a string representation of an IPv4 address to an in_addr_t.
This function converts a "dotted-decimal" string representation of an IPv4 address to an in_addr_t for use in a struct in_addr. This function supports all POSIX-required formats for the representation of the address.
- Parameters
-
cp | A string representation of an IPv4 address. |
- Returns
- The binary representation of the requested IPv4 address. (in_addr_t)(-1) is returned on error.
int inet_aton |
( |
const char * |
cp, |
|
|
struct in_addr * |
pin |
|
) |
| |
Convert a string representation of an IPv4 address to a struct in_addr.
This function, much like inet_addr, converts a string representation of an IPv4 address to a binary representation. This function, however, is non-standard (but seems to appear a lot of places). This function is a little nicer to work with than inet_addr simply because of the fact that the error return from inet_addr happens to actually correspond to a real IPv4 address (255.255.255.255). This version actually distinguishes between that address and invalid addresses.
- Parameters
-
cp | A string representation of an IPv4 address. |
pin | The destination for the conversion. |
- Return values
-
0 | An invalid IPv4 address was given. |
1 | Upon successful conversion. |
char* inet_ntoa |
( |
struct in_addr |
addr | ) |
|
Convert a binary representation of an IPv4 address to a string.
This function does the exact opposite of the inet_addr function, converting a binary form of an address to a string. This function, unlike inet_ntop is non-reentrant (not thread-safe), and will always only support IPv4 addresses. It is suggested to use inet_ntop in any new code.
- Parameters
-
addr | The address to convert. |
- Returns
- A string representation of addr (in dotted-decimal form).
const char* inet_ntop |
( |
int |
af, |
|
|
const void * |
src, |
|
|
char * |
dst, |
|
|
socklen_t |
size |
|
) |
| |
Convert a binary representation of an IP address to a string.
This function does the exact oposite of the inet_pton function, converting a binary form of an address to a string. This function, unlike inet_ntoa, is reentrant, and is the function that you should generally use if you need to convert a binary representation of an IP address to a string.
- Parameters
-
af | The address family that src is in. The only supported values are AF_INET and AF_INET6. |
src | A binary representation of an IP address. |
dst | Storage for the resulting string. This string should be at least 16-bytes long for IPv4, and 46 bytes for IPv6. |
size | The length of dst. |
- Return values
-
NULL | Upon failed conversion. |
dst | Upon successful conversion. |
- Error Conditions:
- EAFNOSUPPORT - the specified address family is unsupported
ENOSPC - the size given is insufficient
int inet_pton |
( |
int |
af, |
|
|
const char * |
src, |
|
|
void * |
dst |
|
) |
| |
Convert a string representation of an IP address to its binary representation.
This function, like inet_addr, converts a string representation of an IP address to its binary representation. This function, unlike inet_aton, is actually standard (in POSIX 2008), and operates very similarly. The only differences between this function and inet_aton are that this function does not support hexadecimal or octal representations and that this function has the ability to support IPv6. This is the function that you should actually use to convert addresses from strings to binary in new code, rather than inet_addr or inet_aton.
- Parameters
-
af | The address family that src is an address in. The only supported values are AF_INET and AF_INET6. |
src | A string representation of the address. |
dst | Storage for the result. For AF_INET, this must be at least 32-bits in size (the function treats it as a struct in_addr). For AF_INET6, this must be at least 128-bits in size (the function treats it as a struct in6_addr). |
- Return values
-
-1 | af is unsupported. |
0 | An invalid address was given. |
1 | Upon successful conversion. |
- Error Conditions:
- EAFNOSUPPORT - the specified address family is unsupported
uint32_t ntohl |
( |
uint32_t |
value | ) |
|
Convert a 32-bit value from network byte order to host byte order.
- Parameters
-
value | The value to convert. |
- Returns
- value converted to host byte order.
uint16_t ntohs |
( |
uint16_t |
value | ) |
|
Convert a 16-bit value from network byte order to host byte order.
- Parameters
-
value | The value to convert. |
- Returns
- value converted to host byte order.