#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. MongoDB集群——分片

    1. 分片的结构及原理分片集群结构分布: 分片集群主要由三种组件组成:mongos,config server,shard1) MONGOS数据库集群请求的入口,所有的请求都通过mongos进行协调, ...

  2. openstack 杂记 备忘

  3. [转载]马士兵Java视频教程 —— 学习顺序

    书(Java核心编程)+视频..这样学感觉比较好.. 原文地址:马士兵Java视频教程 —— 学习顺序作者:习惯 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5. ...

  4. codevs3002石子归并3(四边形不等式优化dp)

    3002 石子归并 3 参考 http://it.dgzx.net/drkt/oszt/zltk/yxlw/dongtai3.htm  时间限制: 1 s  空间限制: 256000 KB  题目等级 ...

  5. cobbler+kickstart安装笔记

    cobbler+kickstart安装笔记 本文参考老男孩配置:https://blog.oldboyedu.com/autoinstall-cobbler/ centos7:开机如果不启动网卡,需要 ...

  6. ACM_夏天到了,又到了出游的季节

    夏天到了,又到了出游的季节 Time Limit: 2000/1000ms (Java/Others) Problem Description: QWER最近无心打代码,于是带着n套衣服出去浪.但是每 ...

  7. 题解报告:hdu 1272 小希的迷宫

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem ...

  8. MySQL简明教程---级联约束

  9. 4CSS颜色和背景

    ---------------------------------------------------------------------------------------------------- ...

  10. [转]Linux下chkconfig命令详解

    转自:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html chkconfig命令主要用来更新(启动或停止)和查询系统 ...