IPアドレスとネットマスクから、ネットワークアドレスを取得する

#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>

int
main()
{
    in_addr_t ip;
    in_addr_t mask;
    in_addr_t netaddr;
    struct in_addr in;

    /* IP Address */
    ip = inet_addr("192.168.1.100");

    /* Mask */
    mask = inet_addr("255.255.255.0");

    /* Network Address */
    netaddr = ip & mask;

    in.s_addr = netaddr;
    puts(inet_ntoa(in));

    return 0;
}