C++获取本机IP地址列表
发布时间:2020-12-16 07:44:20 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /* * main.c * ---------------------------------------------- * 2013-01-09 [email?protected] * * [BUILD] * gcc -o main main.c -Wall * */ #inc
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 /* * main.c * ---------------------------------------------- * 2013-01-09 [email?protected] * * [BUILD] * gcc -o main main.c -Wall * */ #include <stdio.h> #include <netdb.h> #include <ifaddrs.h> // 系统定义的结构,贴在这里方便大家查阅,也可man getifaddrs查看。 // struct ifaddrs { // struct ifaddrs *ifa_next; /* Next item in list */ // char *ifa_name; /* Name of interface */ // unsigned int ifa_flags; /* Flags from SIOCGIFFLAGS */ // struct sockaddr *ifa_addr; /* Address of interface */ // struct sockaddr *ifa_netmask; /* Netmask of interface */ // union { // struct sockaddr *ifu_broadaddr; // /* Broadcast address of interface */ // struct sockaddr *ifu_dstaddr; // /* Point-to-point destination address */ // } ifa_ifu; // #define ifa_broadaddr ifa_ifu.ifu_broadaddr // #define ifa_dstaddr ifa_ifu.ifu_dstaddr // void *ifa_data; /* Address-specific data */ // }; int main(int argc,char **argv) { struct ifaddrs *ifa; if (getifaddrs(&ifa) != 0) { return -1; } for (; ifa!=NULL; ifa=ifa->ifa_next) { struct sockaddr_in *sin = (struct sockaddr_in*)ifa->ifa_addr; if (sin->sin_family != AF_INET) { continue; } unsigned char *b = (unsigned char *)(&sin->sin_addr.s_addr); printf("%st%u.%u.%u.%un",ifa->ifa_name,b[0],b[1],b[2],b[3]); } return 0; } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |