#define MAX_INTERFACE         64

 int showifs()
{
int i;
int rc;
int sock;
int ifnum;
struct ifreq ifr[MAX_INTERFACE];
// struct arpreq arp;
struct ifconf ifc; sock = socket ( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
if ( sock == - )
{
return -;
} ifc.ifc_len = sizeof( ifr );
ifc.ifc_buf = ( caddr_t ) ifr;
rc = ioctl ( sock, SIOCGIFCONF, &ifc );
if ( rc == - )
{
close( sock );
return -;
} ifnum = ifc.ifc_len / sizeof ( struct ifreq );
fprintf( stdout, "ifnum=[%d]\n======================================\n", ifnum );
for ( i = ; i < ifnum; i ++ )
{
fprintf( stdout, "ifname [%s]\n", ifr[i].ifr_name ); //status
rc = ioctl( sock, SIOCGIFFLAGS, ifr + i );
if ( rc != - )
{
if ( ifr[i].ifr_flags & IFF_PROMISC )
{
fprintf( stdout, "PROMISC=TRUE\n" );
}
else
{
fprintf( stdout, "PROMISC=FALSE\n" );
} if ( ifr[i].ifr_flags & IFF_UP )
{
fprintf( stdout, "UP=TRUE\n" );
}
else
{
fprintf( stdout, "UP=FALSE\n" );
}
} //ip
rc = ioctl ( sock, SIOCGIFADDR, ifr + i );
if ( rc != - )
{
fprintf( stdout, "IP=%s\n", inet_ntoa( ( ( struct sockaddr_in* )( &ifr[i].ifr_addr ) )->sin_addr ) );
} //netmask
rc = ioctl ( sock, SIOCGIFNETMASK, ifr + i );
if ( rc != - )
{
fprintf( stdout, "NETMASK=%s\n", inet_ntoa( ( ( struct sockaddr_in* )( &ifr[i].ifr_netmask ) )->sin_addr ) );
} //broadcast
rc = ioctl ( sock, SIOCGIFBRDADDR, ifr + i );
if ( rc != - )
{
fprintf( stdout, "BROADCAST=%s\n", inet_ntoa( ( ( struct sockaddr_in* )( &ifr[i].ifr_broadaddr ) )->sin_addr ) );
} //mac
rc = ioctl ( sock, SIOCGIFHWADDR, ifr + i );
if ( rc != - )
{
fprintf( stdout, "%02x:%02x:%02x:%02x:%02x:%02x\n",
( unsigned char )ifr[i].ifr_hwaddr.sa_data[],
( unsigned char )ifr[i].ifr_hwaddr.sa_data[],
( unsigned char )ifr[i].ifr_hwaddr.sa_data[],
( unsigned char )ifr[i].ifr_hwaddr.sa_data[],
( unsigned char )ifr[i].ifr_hwaddr.sa_data[],
( unsigned char )ifr[i].ifr_hwaddr.sa_data[] );
}
} close( sock );
return ;
}

linux获得网卡信息的更多相关文章

  1. 查看Linux系统网卡信息

    nmcli是一款能够方便我们配置网络的工具,能够轻松的查看网卡信息或网络状态: 实例1:查看网卡信息 [root@localhost ~]# nmcli connection show 名称 UUID ...

  2. linux 获取网卡信息

    sar -n DEV 2 10:41:37 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s10:41:39 AM eth ...

  3. VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程

    VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程 在VMware Workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境 ...

  4. vmware workstation下的虚拟Linux通过NAT模式共享上网

    在vmware workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境不同,也懒得去总是配置Linux的网卡信息,所以,设置为NAT模式来共享真机的上网网卡来 ...

  5. Linux基础入门教程

    Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...

  6. Linux 查看CPU、内存、机器型号等硬件信息

    # 查看CPU信息 #查看CPU信息(型号) [root@localhost ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 32 ...

  7. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  8. paramiko获取主机信息

    import re import paramiko host="192.168.4.88" user = "root" password = " cl ...

  9. liunx常用知识基本命令大全

    liunx基础命令使用 标签(空格分隔):liunx常用命令 网络配置 虚拟网卡的绝对路径 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ...

随机推荐

  1. 第三章、Tiny4412 U-BOOT移植三 时钟设置【转】

    本文转自:http://blog.csdn.net/eshing/article/details/37521789 这一章说明配置时钟频率基本原理 OK,接着说,这次先讲讲CPU的系统时钟.U-BOO ...

  2. qtree4

    https://zybuluo.com/ysner/note/1236834 题面 给出一棵边带权的节点数量为\(n\)的树,初始树上所有节点都是白色.有两种操作: 改变节点\(x\)的颜色,即白变黑 ...

  3. Android之NDK开发(转载)

    http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C+ ...

  4. 枚举详解之EnumSet、EnumMap用法

    枚举简单例子 /** * @author shuliangzhao * @Title: Color * @ProjectName design-parent * @Description: TODO ...

  5. 【洛谷4219】[BJOI2014]大融合(线段树分治)

    题目: 洛谷4219 分析: 很明显,查询的是删掉某条边后两端点所在连通块大小的乘积. 有加边和删边,想到LCT.但是我不会用LCT查连通块大小啊.果断弃了 有加边和删边,还跟连通性有关,于是开始yy ...

  6. Laravel (5.5.33) 加载过程---make方法(四)

    /** * Resolve the given type from the container. * * @param string $abstract * @return mixed */ publ ...

  7. 正则表达式 \D 元字符

    \D元字符可以匹配非数字字符,等价于"[^0-9]". 语法结构: (1).构造函数方式: new RegExp("\\D") (2).对象直接量方式: /\D ...

  8. C#入门经典 Chapter1&2

    Chapter1 1.1 .Net Framework的内容 主要包含一个庞大的代码库,可以在客户端通过OOP来使用这些代码(OOP:Object Oriented Programming面对对象程序 ...

  9. JS——event

    触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息: 普通浏览器支持 event(传参),IE678支持 window.event(无参),兼容写法: < ...

  10. dubbo之延迟暴露

    延迟暴露 如果你的服务需要预热时间,比如初始化缓存,等待相关资源就位等,可以使用 delay 进行延迟暴露. 延迟 5 秒暴露服务 <dubbo:service delay="5000 ...