获取以太网子网掩码

来源:互联网 发布:种草 网络语言 英文 编辑:程序博客网 时间:2024/04/27 16:07

#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


0 0