C/C++获取指定网口的IP地址
生活随笔
收集整理的這篇文章主要介紹了
C/C++获取指定网口的IP地址
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/**功能:傳入一個網口名,獲取相應的IP地址* */#include <stdio.h>
#include <ifaddrs.h>
#include <netinet/in.h>
#include <string.h>
#include <arpa/inet.h>char *interface2ip(char *infName) {struct ifaddrs *ifAddrStruct;void *tmpAddrPtr=NULL;char ip[16];memset(ip, 0, sizeof(ip));static char infIP[16];getifaddrs(&ifAddrStruct);while (ifAddrStruct != NULL){if (ifAddrStruct->ifa_addr->sa_family==AF_INET && 0 == strcmp(ifAddrStruct->ifa_name,infName)){tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_addr)->sin_addr;inet_ntop(AF_INET, tmpAddrPtr, ip, INET_ADDRSTRLEN);//printf("eth0 ip :%s\n",ip);strcpy(infIP,ip);//printf("infIP is :%s\n",infIP);}ifAddrStruct=ifAddrStruct->ifa_next;}//free ifaddrsfreeifaddrs(ifAddrStruct);//return 0;return infIP;
}int main()
{char infName[] = "eth0";printf("the result is : %s\n",interface2ip(infName));return 0;
}
?
?
總結
以上是生活随笔為你收集整理的C/C++获取指定网口的IP地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 反应堆模式(reactor)
- 下一篇: Redis Flushdb 命令