linux c获取IP地址

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
#include <stdio.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>
#include <string.h>
#include <arpa/inet.h>

int main(int argc, char **argv)
{
    int sockfd;
    struct ifreq ifr;

    char *ifname="eth0";
    strncpy(ifr.ifr_name, ifname, IFNAMSIZ-1);

    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if(ioctl(sockfd, SIOCGIFADDR, &ifr) == -1)
    {
        printf("Error\n");
        return;
    }

    struct sockaddr_in *myaddr;
    myaddr = (struct sockaddr_in*)&(ifr.ifr_addr);
    printf("IP: %s\n", inet_ntoa(myaddr->sin_addr));
}

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇: JavaScript常用代码段

下一篇:通过/proc/stat文件计算CPU的利用率