(libc.info.gz) Host Address Data Type
Info Catalog
(libc.info.gz) Abstract Host Addresses
(libc.info.gz) Host Addresses
(libc.info.gz) Host Address Functions
16.6.2.2 Host Address Data Type
...............................
IPv4 Internet host addresses are represented in some contexts as
integers (type 'uint32_t'). In other contexts, the integer is packaged
inside a structure of type 'struct in_addr'. It would be better if the
usage were made consistent, but it is not hard to extract the integer
from the structure or put the integer into a structure.
You will find older code that uses 'unsigned long int' for IPv4
Internet host addresses instead of 'uint32_t' or 'struct in_addr'.
Historically 'unsigned long int' was a 32-bit number but with 64-bit
machines this has changed. Using 'unsigned long int' might break the
code if it is used on machines where this type doesn't have 32 bits.
'uint32_t' is specified by Unix98 and guaranteed to have 32 bits.
IPv6 Internet host addresses have 128 bits and are packaged inside a
structure of type 'struct in6_addr'.
The following basic definitions for Internet addresses are declared
in the header file 'netinet/in.h':
-- Data Type: struct in_addr
This data type is used in certain contexts to contain an IPv4
Internet host address. It has just one field, named 's_addr',
which records the host address number as an 'uint32_t'.
-- Macro: uint32_t INADDR_LOOPBACK
You can use this constant to stand for "the address of this
machine," instead of finding its actual address. It is the IPv4
Internet address '127.0.0.1', which is usually called 'localhost'.
This special constant saves you the trouble of looking up the
address of your own machine. Also, the system usually implements
'INADDR_LOOPBACK' specially, avoiding any network traffic for the
case of one machine talking to itself.
-- Macro: uint32_t INADDR_ANY
You can use this constant to stand for "any incoming address" when
binding to an address. Setting Address. This is the usual
address to give in the 'sin_addr' member of 'struct sockaddr_in'
when you want to accept Internet connections.
-- Macro: uint32_t INADDR_BROADCAST
This constant is the address you use to send a broadcast message.
-- Macro: uint32_t INADDR_NONE
This constant is returned by some functions to indicate an error.
-- Data Type: struct in6_addr
This data type is used to store an IPv6 address. It stores 128
bits of data, which can be accessed (via a union) in a variety of
ways.
-- Constant: struct in6_addr in6addr_loopback
This constant is the IPv6 address '::1', the loopback address. See
above for a description of what this means. The macro
'IN6ADDR_LOOPBACK_INIT' is provided to allow you to initialize your
own variables to this value.
-- Constant: struct in6_addr in6addr_any
This constant is the IPv6 address '::', the unspecified address.
See above for a description of what this means. The macro
'IN6ADDR_ANY_INIT' is provided to allow you to initialize your own
variables to this value.
Info Catalog
(libc.info.gz) Abstract Host Addresses
(libc.info.gz) Host Addresses
(libc.info.gz) Host Address Functions
automatically generated by
info2html