IN.H(7) Miscellaneous Information Manual IN.H(7)

netinet/in.hInternet address family

#include <netinet/in.h>

The <netinet/in.h> header shall define the following types:

Equivalent to the type uint16_t as defined in <inttypes.h> .
Equivalent to the type uint32_t as defined in <inttypes.h> .

The type shall be defined as described in <sys/socket.h> .

The and type shall be defined as described in <inttypes.h>. Inclusion of the <netinet/in.h> header may also make visible all symbols from <inttypes.h> and <sys/socket.h>.

The <netinet/in.h> header shall define the structure that includes at least the following member:

in_addr_t  s_addr

The <netinet/in.h> header shall define the sockaddr_in structure that includes at least the following members (all in network byte order):

sa_family_t     sin_family   AF_INET.
in_port_t       sin_port     Port number.
struct in_addr  sin_addr     IP address.

The sockaddr_in structure is used to store addresses for the Internet address family. Values of this type shall be cast by applications to struct sockaddr for use with socket functions.

[IP6] The <netinet/in.h> header shall define the structure that contains at least the following member:

uint8_t s6_addr[16]

This array is used to contain a 128-bit IPv6 address, stored in network byte order.

The <netinet/in.h> header shall define the sockaddr_in6 structure that includes at least the following members (all in network byte order):

sa_family_t      sin6_family    AF_INET6.
in_port_t        sin6_port      Port number.
uint32_t         sin6_flowinfo  IPv6 traffic class and flow information.
struct in6_addr  sin6_addr      IPv6 address.
uint32_t         sin6_scope_id  Set of interfaces for a scope.

The sockaddr_in6 structure shall be set to zero by an application prior to using it, since implementations are free to have additional, implementation-defined fields in sockaddr_in6.

The sin6_scope_id field is a 32-bit integer that identifies a set of interfaces as appropriate for the scope of the address carried in the sin6_addr field. For a link scope sin6_addr, the application shall ensure that sin6_scope_id is a link index. For a site scope sin6_addr, the application shall ensure that sin6_scope_id is a site index. The mapping of sin6_scope_id to an interface or set of interfaces is implementation-defined.

The <netinet/in.h> header shall declare the following external variable:

struct in6_addr in6addr_any

This variable is initialized by the system to contain the wildcard IPv6 address. The <netinet/in.h> header also defines the IN6ADDR_ANY_INIT macro. This macro must be constant at compile time and can be used to initialize a variable of type struct in6_addr to the IPv6 wildcard address.

The <netinet/in.h> header shall declare the following external variable:

struct in6_addr in6addr_loopback

This variable is initialized by the system to contain the loopback IPv6 address. The <netinet/in.h> header also defines the IN6ADDR_LOOPBACK_INIT macro. This macro must be constant at compile time and can be used to initialize a variable of type struct in6_addr to the IPv6 loopback address.

The <netinet/in.h> header shall define the structure that includes at least the following members:

struct in6_addr  ipv6mr_multiaddr  IPv6 multicast address.
unsigned         ipv6mr_interface  Interface index.

The <netinet/in.h> header shall define the following macros for use as values of the argument of getsockopt(3) and setsockopt(3):

Internet protocol.
[IP6] Internet Protocol Version 6.
Control message protocol.
[RS] Raw IP Packets Protocol.
Transmission control protocol.
User datagram protocol.

The <netinet/in.h> header shall define the following macros for use as destination addresses for connect(3), sendmsg(3), and sendto(3):

IPv4 local host address.
IPv4 broadcast address.

The <netinet/in.h> header shall define the following macro to help applications declare buffers of the proper size to store IPv4 addresses in string form:

16. Length of the string form for IP.

The htonl(3), htons(3), ntohl(3), and ntohs(3) functions shall be available as defined in <arpa/inet.h> . Inclusion of the <netinet/in.h> header may also make visible all symbols from <arpa/inet.h> .

[IP6] The <netinet/in.h> header shall define the following macro to help applications declare buffers of the proper size to store IPv6 addresses in string form:

46. Length of the string form for IPv6.

The <netinet/in.h> header shall define the following macros, with distinct integer values, for use in the argument in the getsockopt(3) or setsockopt(3) functions at protocol level IPPROTO_IPV6:

Join a multicast group.
Quit a multicast group.

Multicast hop limit.
Interface to use for outgoing multicast packets.

Multicast packets are delivered back to the local application.
Unicast hop limit.
Restrict AF_INET6 socket to IPv6 communications only.

The <netinet/in.h> header shall define the following macros that test for special IPv6 addresses. Each macro is of type and takes a single argument of type :


Unspecified address.

Loopback address.

Multicast address.

Unicast link-local address.

Unicast site-local address.

IPv4 mapped address.

IPv4-compatible address.

Multicast node-local address.

Multicast link-local address.

Multicast site-local address.

Multicast organization-local address.

Multicast global address.

None.

None.

None.

xbd_chap04(7) , <arpa/inet.h> , <inttypes.h> , <sys/socket.h> , the System Interfaces volume of IEEE Std 1003.1-2001 (“POSIX.1”), connect(3), getsockopt(3), htonl(3), htons(3), ntohl(3), ntohs(3), sendmsg(3), sendto(3), setsockopt(3)

First released in Issue 6. Derived from the XNS, Issue 5.2 specification.

The member was removed from the sockaddr_in structure as per The Open Group Base Resolution bwg2001-004.

footer end

December 6, 2001 posix.fail