|
|
| |
libcidr(3) |
FreeBSD Library Functions Manual |
libcidr(3) |
libcidr —
CIDR-style IP address manipulation functions
#include <libcidr.h> Library
libcidr (-lcidr)
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 values. Your installation probably has a copy of
the reference manual installed somewhere, perhaps in
/usr/local/share/doc/libcidr. Documentation is also
available on the webpage (see below). This manpage is provided as a quick
reference.
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 network 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 immediate 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 addresses
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 addresses
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.
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.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |