#include "unp.h"
int main(void)
{
struct ifreq ifr;
struct sockaddr_in addr;
int sockfd;
char ip[INET_ADDRSTRLEN];
if ((sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1)
err_sys("socket");
strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name));
if (ioctl(sockfd, SIOCGIFNETMASK, &ifr) == -1)
err_sys("ioctl");
memcpy(&addr, &ifr.ifr_addr, sizeof(addr));
if (inet_ntop(AF_INET, &addr.sin_addr, ip, sizeof(ip)) == NULL)
err_sys("inet_ntop");
printf("netmask: %s\r\n", ip);
exit(0);
}
void err_sys(const char *errmsg)
{
perror(errmsg);
exit(1);
}
http://blog.chinaunix.net/uid-20566573-id-1633612.html