#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. 将canvas画布内容转化为图片(toDataURL(),创建url)

    将canvas画布内容转化为图片(toDataURL(),创建url) 总结 1.现在的浏览器都支持右键另存为图片的方法来将canvas画布内容转化为图片 2.在代码里面可以通过toDataURL() ...

  2. bzoj 3993 星际战争

    题目大意: X军团和Y军团正在激烈地作战  在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进攻X军团的阵地,其中第i个巨型机器人的装甲值为Ai 当一个巨型机器人的装甲值减少到0或者以下时,这个巨型机 ...

  3. bzoj 1935 Tree 园丁的烦恼

    题目大意: 一些点,每次查询一个矩形内有多少个点 思路: 因为空间太大 所以不能用什么二维树状数组 需要把这些点和所有查询的矩阵的左下和右上离线下来 先离散化 然后每个子矩阵像二维前缀和那样查询 按照 ...

  4. yum -y --downloadonly --downloaddir=/ruiy upggrde;

    事务概要================================================================================================ ...

  5. Kindergarten Election

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3715 题意:有N个孩子投票选举leader,不能自己选自己.Sheldon ...

  6. codevs3728联合权值(LCA)

    3728 联合权值  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 输入描述 Input Des ...

  7. 返回Json和XML两种格式

    由于项目需要,同一接口支持根据参数不同返回XML和Json两种格式的数据,在网上看了很多大多是加后缀的方式来实现返回不同格式数据的,后来看了一篇http://www.importnew.com/276 ...

  8. [转]Oracle Client 11g安裝經驗

    本文转自:http://www.dotblogs.com.tw/shadow/archive/2011/11/08/54759.aspx 開發環境:本機(Win XP)的ASP.net 4 WebSi ...

  9. EF 批量插入,sqlhelper 批量插入

    需添加一个using System.Linq; 引用 public void BulkInsert<T>(string connection, string tableName, ILis ...

  10. 回收maven私仓过期垃圾

    login->scheduled tasks->add