当前位置: 技术问答>linux和unix
linux c/c++ 如何获取网络接口名称呢?
来源: 互联网 发布时间:2017-01-11
本文导语: 比如有多张网卡。 使用 ifconfig 的命令 可以看到 eth0 eth1 lo 等。。并且会显示他们的详细信息,我要如何获得 eth0 eth1 这些名称呢? | #include #include #include #include #include #include...
比如有多张网卡。 使用 ifconfig 的命令 可以看到 eth0 eth1 lo 等。。并且会显示他们的详细信息,我要如何获得 eth0 eth1 这些名称呢?
|
#include
#include
#include
#include
#include
#include
#include
#include
int main()
{
int i=0;
int sockfd;
struct ifconf ifconf;
unsigned char buf[512];
struct ifreq *ifreq;
//初始化ifconf
ifconf.ifc_len = 512;
ifconf.ifc_buf = buf;
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))0; i--)
{
// if(ifreq->ifr_flags == AF_INET){ //for ipv4
printf("name = [%s]n", ifreq->ifr_name);
printf("local addr = [%s]n",
inet_ntoa(((struct sockaddr_in*)&(ifreq->ifr_addr))->sin_addr));
ifreq++;
// }
}
return 0;
}
#include
#include
#include
#include
#include
#include
#include
int main()
{
int i=0;
int sockfd;
struct ifconf ifconf;
unsigned char buf[512];
struct ifreq *ifreq;
//初始化ifconf
ifconf.ifc_len = 512;
ifconf.ifc_buf = buf;
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))0; i--)
{
// if(ifreq->ifr_flags == AF_INET){ //for ipv4
printf("name = [%s]n", ifreq->ifr_name);
printf("local addr = [%s]n",
inet_ntoa(((struct sockaddr_in*)&(ifreq->ifr_addr))->sin_addr));
ifreq++;
// }
}
return 0;
}
|
我也想指定, 期待中。。。
|
|
mark
|
ioctl.