Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
INET(3)			    Library Functions Manual		       INET(3)

NAME
       inet_aton,  inet_addr, inet_network, inet_ntoa, inet_ntoa_r, inet_ntop,
       inet_pton, inet_makeaddr, inet_lnaof, inet_netof	 --  Internet  address
       manipulation routines

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<sys/types.h>
       #include	<sys/socket.h>
       #include	<netinet/in.h>
       #include	<arpa/inet.h>

       int
       inet_aton(const char *cp, struct	in_addr	*pin);

       in_addr_t
       inet_addr(const char *cp);

       in_addr_t
       inet_network(const char *cp);

       char *
       inet_ntoa(struct	in_addr	in);

       char *
       inet_ntoa_r(struct in_addr in, char *buf, socklen_t size);

       const char *
       inet_ntop(int af,    const void * restrict src,	  char * restrict dst,
	   socklen_t size);

       int
       inet_pton(int af, const char * restrict src, void * restrict dst);

       struct in_addr
       inet_makeaddr(in_addr_t net, in_addr_t lna);

       in_addr_t
       inet_lnaof(struct in_addr in);

       in_addr_t
       inet_netof(struct in_addr in);

DESCRIPTION
       The routines  inet_aton(),  inet_addr()	and  inet_network()  interpret
       character  strings representing numbers expressed in the	Internet stan-
       dard `.'	notation.

       The inet_pton() function	converts a presentation	format	address	 (that
       is,  printable  form  as	 held in a character string) to	network	format
       (usually	a struct in_addr or some other internal	binary representation,
       in network byte order).	It returns 1 if	the address was	valid for  the
       specified  address family, or 0 if the address was not parseable	in the
       specified address family, or -1 if some system error occurred (in which
       case errno will have been set).	This function is presently  valid  for
       AF_INET and AF_INET6.

       The inet_aton() routine interprets the specified	character string as an
       Internet	 address, placing the address into the structure provided.  It
       returns 1 if the	string was  successfully  interpreted,	or  0  if  the
       string is invalid.  The inet_addr() and inet_network() functions	return
       numbers	suitable  for  use  as Internet	addresses and Internet network
       numbers,	respectively.

       The function inet_ntop()	converts an address *src from  network	format
       (usually	 a  struct  in_addr or some other binary form, in network byte
       order) to presentation format (suitable for external display purposes).
       The size	argument specifies the size, in	bytes,	of  the	 buffer	 *dst.
       INET_ADDRSTRLEN	and  INET6_ADDRSTRLEN define the maximum size required
       to convert an address of	the respective type.  It  returns  NULL	 if  a
       system  error  occurs  (in which	case, errno will have been set), or it
       returns	a  pointer  to	the  destination  string.   This  function  is
       presently valid for AF_INET and AF_INET6.

       The  routine inet_ntoa()	takes an Internet address and returns an ASCII
       string  representing  the  address  in  `.'  notation.	 The   routine
       inet_ntoa_r()  is the reentrant version of inet_ntoa().	The deprecated
       routine inet_makeaddr() takes an	Internet network number	 and  a	 local
       host  address  on that network, and constructs an Internet address from
       it.  It should only be assumed to work for historical class A/B/C  net-
       works.	The  deprecated	 routines  inet_netof()	and inet_lnaof() break
       apart Internet host addresses, returning	the network number  and	 local
       host  address  part,  respectively, assuming the	historical class A/B/C
       network masks.

       All Internet addresses are returned in  network	order  (bytes  ordered
       from  left  to right).  All network numbers and local address parts are
       returned	as machine byte	order integer values.

INTERNET ADDRESSES (IP VERSION 4)
       The inet_aton() and inet_addr() functions accept	IPv4 values  specified
       using the `.' notation in one of	the following forms:

	     a.b.c.d
	     a.b.c
	     a.b
	     a

       When  four  parts  are specified, each is interpreted as	a byte of data
       and assigned, from left to right, to the	four bytes of an Internet  ad-
       dress.

       When a three part address is specified, the last	part is	interpreted as
       a  16-bit quantity and placed in	the least significant two bytes	of the
       network address.

       When a two part address is supplied, the	last part is interpreted as  a
       24-bit  quantity	and placed in the least	significant three bytes	of the
       network address.

       When only one part is given, the	value is stored	directly in  the  net-
       work address without any	byte rearrangement.

       All  numbers  supplied as "parts" in a `.' notation may be decimal, oc-
       tal, or hexadecimal, as specified in the	C language (i.e., a leading 0x
       or 0X implies hexadecimal; otherwise, a leading 0 implies octal;	other-
       wise, the number	is interpreted as decimal).

       Note that inet_pton() does not accept 1-,  2-,  or  3-part  dotted  ad-
       dresses;	 all  four parts must be specified and are interpreted only as
       decimal values.	This is	a narrower input set  than  that  accepted  by
       inet_aton().

DIAGNOSTICS
       The  constant INADDR_NONE is returned by	inet_addr() and	inet_network()
       for malformed requests.

ERRORS
       The inet_ntop() call fails if:

       [ENOSPC]		  size was not large enough to store the  presentation
			  form of the address.

       [EAFNOSUPPORT]	  *src was not an AF_INET or AF_INET6 family address.

SEE ALSO
       byteorder(3),	getaddrinfo(3),	   gethostbyname(3),   getnameinfo(3),
       getnetent(3), inet_net(3), hosts(5), networks(5)

       IP Version 6 Addressing Architecture, RFC, 2373,	July 1998.

STANDARDS
       The inet_ntop() and inet_pton() functions conform to X/Open  Networking
       Services	Issue 5.2 ("XNS5.2").

HISTORY
       These functions appeared	in 4.2BSD.

BUGS
       The  value  INADDR_NONE	(0xffffffff) is	a valid	broadcast address, but
       inet_addr() cannot return that value without indicating	failure.   The
       newer inet_aton() function does not share this problem.	The problem of
       host  byte  ordering  versus  network  byte ordering is confusing.  The
       string returned by inet_ntoa() resides in a static memory area.

       The inet_addr() function	should return a	struct in_addr.

FreeBSD	13.2		       November	9, 2021			       INET(3)

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | INTERNET ADDRESSES (IP VERSION 4) | DIAGNOSTICS | ERRORS | SEE ALSO | STANDARDS | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=inet_ntoa&sektion=3&manpath=FreeBSD+14.2-RELEASE+and+Ports>

home | help