#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. bzoj3332: 旧试题

    这题就是最大生成树. 把两个点之间的期望建边排序. 把相同的期望一起做,那么在这个做之前,这些有着相同期望的点两两肯定不连,否则就输出No了. 相同的做完之后,再次for一遍check一下有没有两两之 ...

  2. frameset的target属性

    使用frameset时的target属性 (2012-09-18 08:19:31) 转载▼   分类: java技术之路 一般常用的有四个属性 _blank 浏览器总在一个新打开.未命名的窗口中载入 ...

  3. Akka源码分析-Event Bus

    akka中的EventBus其实是不常用,也最容易被忽略的一个组件. 但如果你深入Cluster的实现就会发现,这个东西其实还挺有用的,而且它是ActorSystem系统中所有事件消息的一个横切面,通 ...

  4. 【学习笔记】OI玄学道—代码坑点

    [学习笔记]\(OI\) 玄学道-代码坑点 [目录] [逻辑运算符的短路运算] [\(cmath\)里的贝塞尔函数] 一:[逻辑运算符的短路运算] [运算规则] && 和 || 属于逻 ...

  5. js 中的定时器

    在js中的定时器分两种:1.setTimeout() 2.setInterval() 1.setTimeOut() 只在指定时间后执行一次 /定时器 异步运行 function hello(){ al ...

  6. MVC系列学习(十二)-服务端的验证

    在前一讲,提到过,客户端的东西永远可以造假,所以我们还要在服务端进行验证 注意:先加载表单,后添加js文件,才能有效:而先加载js,后添加表单,是没有效果的 1.视图与Model中的代码如下 2.一张 ...

  7. 关于java.util.properties的随笔

    public class Propertiesextends Hashtable<Object,Object> Properties 类表示了一个持久的属性集.Properties 可保存 ...

  8. PHP开发之旅-表单验证

    一.创建表单 <form name = "login" method = "post" action="contact.php?action=l ...

  9. Android基础TOP4:Tost的使用

    Activity: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xm ...

  10. 设计模式——“signleton”

    那天别人问了我一个问题,关于单例模式的,由于之前了解的都是蜻蜓点水,所以重新复习了一次重新总结. 单例模式的写法总的来说有5种:懒汉,恶汉,枚举,双重校验锁,静态内部类 懒汉 public class ...