zoukankan      html  css  js  c++  java
  • 通过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, sizeof(char), sizeof(buffer), stream);
                pclose(stream);
                memcpy(outbuffer, buffer, strlen(buffer) + 1);
    
                return 0;
        } else {
            outbuffer[0] = '';
        }
        return -1;
    }         

      一般通过 ifconfig eth0 可以获取如下的信息:

      

    eth0    Link encap:Ethernet  HWaddr 00:03:7F:C7:27:4F  
              inet6 addr: fe80::203:7fff:fec7:274f/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:278043 errors:0 dropped:0 overruns:0 frame:0
              TX packets:52163 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:46992389 (44.8 MiB)  TX bytes:14020182 (13.3 MiB)

      例如需要获取eth0的Rx大小。可以使用如下的shellcmd命令来获取: ifconfig eth0 | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $2}' 

                                或者使用: ifconfig eth0 | grep "RX bytes" | awk '{print $2}' | sed 's/bytes://g' 

      网卡其它具体的信息可以在 /sys/class/net/eth0/statistics/ 与 /proc/net/dev 中获取。或者使用ethtool eth0命令获取相对应的信息。

      

  • 相关阅读:
    redis 学习笔记三
    hadoop 家族图
    hbase 笔记
    spark history server
    利用Intellij IDEA构建spark开发环境
    自己安装的工具版本
    hive读书笔记
    数据仓库元数据
    Spark RDD
    pg mysql 比较
  • 原文地址:https://www.cnblogs.com/fogcell/p/6705508.html
Copyright © 2011-2022 走看看