zoukankan      html  css  js  c++  java
  • C语言通过枚举网卡,API接口可查看man 7 netdevice--获取接口IP地址

    /*代码来自StackOverflow: http://stackoverflow.com/questions/212528/linux-c-get-the-ip-address-of-local-computer */
    #include <stdio.h>      
    #include <sys/types.h>
    #include <ifaddrs.h>
    #include <netinet/in.h> 
    #include <string.h> 
    #include <arpa/inet.h>
    
    int main (int argc, const char * argv[]) {
        struct ifaddrs * ifAddrStruct=NULL;
        void * tmpAddrPtr=NULL;
    
        getifaddrs(&ifAddrStruct);
    
        while (ifAddrStruct!=NULL) {
            if (ifAddrStruct->ifa_addr->sa_family==AF_INET) { // check it is IP4
                // is a valid IP4 Address
                tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_addr)->sin_addr;
                char addressBuffer[INET_ADDRSTRLEN];
                inet_ntop(AF_INET, tmpAddrPtr, addressBuffer, INET_ADDRSTRLEN);
                printf("%s IP Address %s
    ", ifAddrStruct->ifa_name, addressBuffer); 
            } else if (ifAddrStruct->ifa_addr->sa_family==AF_INET6) { // check it is IP6
                // is a valid IP6 Address
                tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_addr)->sin_addr;
                char addressBuffer[INET6_ADDRSTRLEN];
                inet_ntop(AF_INET6, tmpAddrPtr, addressBuffer, INET6_ADDRSTRLEN);
                printf("%s IP Address %s
    ", ifAddrStruct->ifa_name, addressBuffer); 
            } 
            ifAddrStruct=ifAddrStruct->ifa_next;
        }
        return 0;
    }
  • 相关阅读:
    爬虫:Scrapy15
    爬虫:Scrapy14
    爬虫:Scrapy13
    爬虫:Scrapy12
    爬虫:Scrapy11
    爬虫:Scrapy10
    爬虫:Scrapy9
    线段树基础
    [USACO08DEC]秘密消息Secret Message
    阅读理解
  • 原文地址:https://www.cnblogs.com/yaox/p/6604522.html
Copyright © 2011-2022 走看看