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

FreeBSD Manual Pages

  
 
  

home | help
libcidr(3)		 BSD Library Functions Manual		    libcidr(3)

NAME
     libcidr --	CIDR-style IP address manipulation functions

SYNOPSIS
     #include <libcidr.h>
     Library libcidr (-lcidr)

SUMMARY
     libcidr is	a C library implementing a variety of functions	to manipulate
     IP	addresses and netblocks.  It handles both IPv4 and IPv6	networks, will
     transform them to and from	text strings in	a variety of formats, cram
     them into and lever them out of in_addr and in6_addr structures, and give
     you all sorts of stats about them.	 Functions are provided	also to	tell
     you a few things about the	network	any given CIDR block is	in, what its
     parent and	child networks are, and	so on.	If you're really nice, libcidr
     may even cook you breakfast.

     The primary documentation for libcidr is maintained elsewhere, with a
     full description of the functions,	their options, and their return	val-
     ues.  Your	installation probably has a copy of the	reference manual in-
     stalled somewhere,	perhaps	in /usr/local/share/doc/libcidr.  Documenta-
     tion is also available on the webpage (see	below).	 This manpage is pro-
     vided as a	quick reference.

DESCRIPTION OF FUNCTIONS
     CIDR *cidr_addr_broadcast(const CIDR *cidr)
	   Return a CIDR structure describing the broadcast address of the
	   network represented by cidr.

     CIDR *cidr_addr_hostmax(const CIDR	*cidr)
	   Return a CIDR structure describing the "highest" host in the	subnet
	   represented by cidr.

     CIDR *cidr_addr_hostmin(const CIDR	*cidr)
	   Return a CIDR structure describing the "lowest" host	in the subnet
	   represented by cidr.

     CIDR *cidr_addr_network(const CIDR	*cidr)
	   Return a CIDR structure describing the network address of the net-
	   work	represented by cidr.

     CIDR *cidr_alloc(void)
	   Allocate and	initialize a CIDR structure.

     int cidr_contains(const CIDR *big,	const CIDR *little)
	   Determine whether little is a CIDR block entirely contained within
	   the block described by big.	Return 0 if so,	else non-zero.

     CIDR *cidr_dup(const CIDR *cidr)
	   Return a duplicate of cidr.

     int cidr_equals(const CIDR	*first,	const CIDR *second)
	   Determine whether first and second describe the same	CIDR block.
	   Return 0 if they do,	else non-zero.

     void cidr_free(CIDR *cidr)
	   Free	the memory used	by a CIDR *.

     CIDR *cidr_from_inaddr(const struct in_addr *in)
	   Generate a CIDR * based on a	struct in_addr.

     CIDR *cidr_from_in6addr(const struct in6_addr *in)
	   Generate a CIDR * based on a	struct in6_addr.

     CIDR *cidr_from_str(const char *str)
	   Parse str and return	a CIDR * representing it.

     uint8_t *cidr_get_addr(const CIDR *cidr)
	   Return the address in an array of binary octets.

     uint8_t *cidr_get_mask(const CIDR *cidr)
	   Return the netmask in an array of binary octets.

     int cidr_get_pflen(const CIDR *cidr)
	   Return the length of	the netmask prefix of cidr.

     int cidr_get_proto(const CIDR *cidr)
	   Return the protocol of an address.

     int cidr_is_v4mapped(const	CIDR *addr)
	   Checks if an	IPv6 address is	in the IPv4-mapped range.

     CIDR **cidr_net_subnets(const CIDR	*cidr)
	   Return a 2-element array of CIDR * 's representing the two immedi-
	   ate subnets of the network described	by cidr.  That is to say, the
	   two networks, within	cidr, which have a netmask 1 bit longer.

     CIDR *cidr_net_supernet(const CIDR	*cidr)
	   Return a CIDR * describing the "parent" network of cidr.  That is,
	   the network with a netmask 1	bit shorter, which wholly contains
	   cidr.

     const char	*cidr_numaddr(const CIDR *cidr)
	   Return a pointer to a static	string giving the number of total ad-
	   dresses available in	the network described by cidr.	Do not attempt
	   to alter or free(3) this string.

     const char	*cidr_numaddr_pflen(int	pflen)
	   Return a pointer to a static	string giving the number of total ad-
	   dresses available in	a network having a prefix length of pflen.  Do
	   not attempt to alter	or free(3) this	string.	 You probably don't
	   want	to call	this function manually often.

     const char	*cidr_numhost(const CIDR *cidr)
	   Return a pointer to a static	string giving the number of addresses
	   available for hosts available in the	network	described by cidr.  Do
	   not attempt to alter	or free(3) this	string.

     const char	*cidr_numhost_pflen(int	pflen)
	   Return a pointer to a static	string giving the number of addresses
	   available for hosts in a network having a prefix length of pflen.
	   Do not attempt to alter or free(3) this string.  You	probably don't
	   want	to call	this function manually often.

     struct in_addr *cidr_to_inaddr(const CIDR *cidr, struct in_addr *in)
	   Fill	in a struct in_addr with the address given in cidr.  A user-
	   supplied struct in_addr is used if passed in; if a null pointer is
	   passed, a new one will be allocated,	filled in, and returned.

     struct in6_addr *cidr_to_in6addr(const CIDR *cidr,	struct in6_addr	*in)
	   Fill	in a struct in6_addr with the address given in cidr.  A	user-
	   supplied struct in6_addr is used if passed in; if a null pointer is
	   passed, a new one will be allocated,	filled in, and returned.

     char *cidr_to_str(const CIDR *cidr, int flags)
	   Return a string version of the passed-in cidr, as described by
	   flags.  By default, it will print in	the standard address form for
	   whatever address family cidr	represents, followed by	a slash, and
	   then	the prefix length of the netmask.

     const char	*cidr_version(void)
	   Return a static string containing version information.

AUTHOR
     libcidr is	written	and maintained by Matthew Fuller
     <fullermd@over-yonder.net>.  Its home on the web is at
     <http://www.over-yonder.net/~fullermd/projects/libcidr>; check there for
     updates and additional documentation.

BSD				  May 7, 2012				   BSD

NAME | SYNOPSIS | SUMMARY | DESCRIPTION OF FUNCTIONS | AUTHOR

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

home | help