linux获得网卡信息
#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获得网卡信息的更多相关文章
- 查看Linux系统网卡信息
nmcli是一款能够方便我们配置网络的工具,能够轻松的查看网卡信息或网络状态: 实例1:查看网卡信息 [root@localhost ~]# nmcli connection show 名称 UUID ...
- 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 ...
- VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程
VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程 在VMware Workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境 ...
- vmware workstation下的虚拟Linux通过NAT模式共享上网
在vmware workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境不同,也懒得去总是配置Linux的网卡信息,所以,设置为NAT模式来共享真机的上网网卡来 ...
- Linux基础入门教程
Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...
- Linux 查看CPU、内存、机器型号等硬件信息
# 查看CPU信息 #查看CPU信息(型号) [root@localhost ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 32 ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- paramiko获取主机信息
import re import paramiko host="192.168.4.88" user = "root" password = " cl ...
- liunx常用知识基本命令大全
liunx基础命令使用 标签(空格分隔):liunx常用命令 网络配置 虚拟网卡的绝对路径 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ...
随机推荐
- USRP通信的结构体和常量(上位机、下位机共用)
fw_common.h包括了USRP固件和上位机共用的代码,寄存器地址映射.结构体定义等 #include <stdint.h> /*! * Structs and constants f ...
- tiny4412 裸机程序 一、说明【转】
本文转载自:http://blog.csdn.net/eshing/article/details/37109115 首先.我想说明为什么我写这个文档?我自己想学点东西,过于求成,又过于自信,直接买了 ...
- 【已解决】Makefile执行过程中出错:make: *** No rule to make target ` ‘, needed by xxx. Stop(转载)
转自: http://www.crifan.com/makefile_error_make_no_rule_to_make_target_needed_by_stop/ [问题] 有个已有的Makef ...
- PCB genesis连孔加除毛刺孔(圆孔与圆孔)实现方法(一)
一.为什么 连孔加除毛刺孔 原因是 PCB板材中含有玻璃纤维, 毛刺产生位置在于2个孔相交位置,由于此处钻刀受力不均导致纤维切削不断形成毛刺 ,为了解决这个问题:在钻完2个连孔后,在相交处再钻一个孔, ...
- 5.3QBXT模拟赛
出题人:钟惠兴 题目名称 讨厌整除的小明 吸血鬼 鱼的感恩 题目类型 传统型 传统型 传统型 题目目录/可执行文件名 ming vamp fool 输入文件名 ming.in vamp.in fool ...
- 牛客小白月赛15 C 表单 ( map 使用)
链接:https://ac.nowcoder.com/acm/contest/917/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- 基于docker的tomcat服务化
tomcat作为web容器被广泛应用,但作者所在的公司restful接口特别多,每个接口都需要一个tomcat来启动,为了配置隔离,一般都会把tomcat安装文件复制多遍,分别把war包部署在对应的w ...
- BZOJ 3473
思路: CF原题 ZYF有题解 O(nlog^2n) //By SiriusRen #include <bits/stdc++.h> using namespace std; ; ]; i ...
- flask web 表单验证 WTForms
简介 WTForms 是一个flask集成框架,或者说是库,用于处理浏览器表单提交的数据,它在flask-WTF的基础上扩展并添加了一些随手可得的精巧帮助函数,这些函数将会是在flask里使用表单更加 ...
- Android 蓝牙开发基本流程
此例子基于 android demo 对于一般的软件开发人员来说,蓝牙是很少用到的,尤其是Android的蓝牙开发,国内的例子很少 Android对于蓝牙开发从2.0版本的sdk才开始支持,而 ...