Linux 编程获取本机所有网卡和IP
Posted lausaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 编程获取本机所有网卡和IP相关的知识,希望对你有一定的参考价值。
#include <unistd.h> #include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <arpa/inet.h> #include <sys/socket.h> #include <netinet/in.h> #include <errno.h> #include <string.h> int main() { struct ifaddrs* ifaddr = NULL; int ret = getifaddrs(&ifaddr); if (ret) { printf("getifaddrs failed, errno:%d\n", errno); return 1; } struct ifaddrs* ifp = ifaddr; char ip[16]; char netmask[16]; for ( ; ifp != NULL; ifp = ifp->ifa_next) { if (ifp->ifa_addr && ifp->ifa_addr->sa_family == AF_INET) { strncpy(ip, inet_ntoa(((struct sockaddr_in*)ifp->ifa_addr)->sin_addr), 16); strncpy(netmask, inet_ntoa(((struct sockaddr_in*)ifp->ifa_netmask)->sin_addr), 16); printf("dev:%s, ip:%s, netmask:%s\n", ifp->ifa_name, ip, netmask); } } freeifaddrs(ifaddr); return 0; }
以上是关于Linux 编程获取本机所有网卡和IP的主要内容,如果未能解决你的问题,请参考以下文章