Пример #1
0
/* Get the first host in a CIDR block */
CIDR *
cidr_addr_hostmin(const CIDR *addr)
{
	CIDR *toret;

	toret = cidr_addr_network(addr);
	if(toret==NULL)
		return(NULL); /* Preserve errno */
	
	toret->addr[15] |= 1;

	return(toret);
}
Пример #2
0
/* Is it a correct IPv6 network address? */
int is_ipv6_net(CIDR *address)
{
    int result;

    if( (cidr_get_proto(address) == CIDR_IPV6) &&
        (cidr_equals(address, cidr_addr_network(address)) == 0) )
    {
         result = RESULT_SUCCESS;
    }
    else
    {
         result = RESULT_FAILURE;
    }

    return(result);
}
Пример #3
0
/* Is it a correct IPv4 host (i.e. not network) address? */
int is_ipv4_host(CIDR *address)
{
    int result;

    if( (cidr_get_proto(address) == CIDR_IPV4) &&
        ((cidr_equals(address, cidr_addr_network(address)) < 0) ||
        (cidr_get_pflen(address) == 32)) )
    {
         result = RESULT_SUCCESS;
    }
    else
    {
         result = RESULT_FAILURE;
    }

    return(result);
}