获取网卡信息

获取网卡名:

#ifconfig | grep -o "^[^[:space:]]\{1,\}"

获取eth0的ip地址:

#ifconfig eth0 | grep -o "inet addr:[0-9\.]\{1,\}" | cut -d: -f2

红帽7上的方法

#ifconfig eth0 | grep -o "inet [0-9\.]\{1,\}" | cut -d‘ ‘ -f2

不同的系统ifconfig得到的信息不同修改grep的内容来准确获取

获取指定IP的网卡名:

#ifconfig | grep -B 1 "192.168.0.99" | grep -o "^[^[:space:]]\{1,\}"

编写一个getinterface.sh脚本,可以接受选项{-i,-I,-a},完成以下功能:
1、使用以下形式:getinterface.sh [-i interface | -I IP | -a]
2、当用户使用-i时,显示其指定网卡的IP地址
3、当用户使用-I时,显示其指定IP地址的网络接口
4、当用户使用-a时,显示其所有的网络接口和其IP地址(除LO接口外)

#!/bin/bash##Name:getinterface.sh #Description:Get ethernet information#Author:chen#Version:0.0.1#date time:2016-08-29 22:01:53#Usage:getinterface.shSHOWIP (){        if ! ifconfig |grep -o "^[^[:space:]]\{1,\}"|grep $1 &> /dev/null;then                return 13        fi        echo -n "$1:"        ifconfig $1 | grep -o "inet [0-9\.]\{1,\}" | cut -d‘ ‘ -f2}SHOWETHER(){        if ! ifconfig | grep -o "inet [0-9\.]\{1,\}" | cut -d‘ ‘ -f2 | grep ^"$1"$ &> /dev/null;then                return 14        fi        echo -n "$1:"        ifconfig | grep -B 1 "$1" | grep -o "^[^[:space:]]\{1,\}"|cut -d: -f1-2}SHOWALL () {         ifconfig | grep -o "^[^[:space:]]\{1,\}"|grep -o "[a-z,A-Z,0-9].*[^:]" > ether.txt        while read LINE;do                if [ $LINE != "lo" ];then                        SHOWIP $LINE                fi        done < ether.txt        rm -f ether.txt}USAGE () {        echo "getinterface.sh <-i interface | -I IP | -a >"             }while getopts ":i:I:a" SWICH;do        case $SWICH in                i)                SHOWIP $OPTARG                [ $? -eq 13 ] && echo "Wrong ethercard"                ;;                I)                SHOWETHER $OPTARG                [ $? -eq 14 ] && echo "Wrong IP"                ;;                a)                SHOWALL                ;;                *)                USAGE                ;;        esacdone
时间: 2024-08-08 13:54:56

获取网卡信息的相关文章

通过grep,awk,sed的简单应用获取网卡信息。

本文主要通过shell命令来实现获取网卡信息.通过cmd_shell函数可以将运行命令后的输出返回. int cmd_shell(char *shellcmd, char *outbuffer, int size) { FILE *stream; char buffer[size]; memset(buffer, 0, sizeof(buffer)); stream = popen(shellcmd, "r"); if (stream != NULL) { fread(buffer,

使用socket获取网卡信息

TR069终端程序需要获取wan口的状态信息,这里采用一种方式,使用socket函数打开一个描述符,使用ioctl函数获取相应的参数.ifconfig的内部实现也是这样做的,具体可以参看ifocnfig源码. 如要获取wan口的信息,则首先需要知道wan口对应的网卡名是什么,这里假定为eth0,因为具体的获取需要看具体设备的配置,所以这里就默认为eth0. int s = socket(AF_INET, SOCK_DGRAM, 0); if (s < 0) { return -1; } 网卡信息

Python获取网卡信息(名称、MAC、IP、网关等)

"人生苦短,我用Python".Python的高效有一部分是跟它丰富的模块分不开的.Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间. Python pypi库中一个模块名字叫"netifaces",使用C语言写的一个第三方模块.可以: 1.获取本机的所有网关 2.获取本机所有的接口Interface(网卡NIC) 3.获取本机指定接口的详细信息,包括IP地址.子网掩码.广播地址.MAC地址等 不过遗憾的是这个模块的功能太有限以及会带出一些令人困惑

Linux下利用ioctl函数获取网卡信息

linux下的ioctl函数原型如下: #include <sys/ioctl.h> int ioctl(int handle, int cmd, [int *argc, int argv]) 函数成功返回0,失败返回-1. 其相关命令接口如下: 类别 Request 说明 数据类型 套 接 口 SIOCATMARK SIOCSPGRP SIOCGPGRP 是否位于带外标记 设置套接口的进程ID 或进程组ID 获取套接口的进程ID 或进程组ID int int int 文 件 FIONBIO

python 跨平台获取网卡信息和本机ip地址

笔者在项目中遇到过获取本机网卡ip的例子,利用python库psutil解决了此问题. def get_netcard(): """获取网卡名称和ip地址 """ netcard_info = [] info = psutil.net_if_addrs() for k, v in info.items(): for item in v: if item[0] == 2 and not item[1] == '127.0.0.1': netcard

Linux 获取网卡信息

#include <sys/ioctl.h> #include <net/if.h> #include <unistd.h> #include <netinet/in.h> #include <string.h> int main() { struct ifreq ifr; struct ifconf ifc; char buf[2048]; int success = 0; int sock = socket(AF_INET, SOCK_DGR

获取网卡信息01

1. http://bbs.csdn.net/topics/390492221 http://www.myexception.cn/vc-mfc/1734639.html http://www.itnose.net/detail/6085807.html http://blog.csdn.net/earbao/article/details/23361437 http://bbs.csdn.net/topics/320251549 http://www.cnblogs.com/nodegis/p

python之psutil模块获取系统信息

psuti是一个跨平台,能够轻松实现获取系统运行进程,系统利用率信息,主要用于系统监控,分析和限制系统资源及进程管理. psutil为第三方模块,通过pip安装模块. 获取cpu信息 1.cpu信息2.User Time:执行用户进程的时间百分比3.System Time:执行内核进程和中断的时间百分比4.Wait IO 由于IO等待而使CPU处于idle空闲状态的时间百分比5.Idle,CPU处于idle状态的时间百分比 ######获取cpu的物理个数 >>> psutil.cpu_

java获取当前计算机网卡MAC地址

package com.yjm.testmac; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Enumeration; public class MacTest { public static void main(String[] args)