AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-368830

Gagan93's questions

Martin Hope
Gagan93
Asked: 2017-05-30 23:10:51 +0800 CST

检测网卡是否为Linux/bsd中的虚拟网卡(docker/veth/etc)

  • 5

我在此页面上看到了一些很好的解释,用于在 ubuntu 中获取有关网卡及其统计信息的信息。如页面上所述,这给出了很好的输出。我也尝试阅读其他文档,但找不到可以区分系统上真实网卡和虚拟网卡的标志或类似内容。

有没有办法区分?谢谢。

ubuntu
  • 1 个回答
  • 1069 Views
Martin Hope
Gagan93
Asked: 2017-03-04 03:36:09 +0800 CST

FreeBSD 11 不显示 RX、TX 数据包和计数

  • 4

我有一个 FreeBSD 11 系统,在其中我得到以下ifconfig命令输出

# ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 inet 127.0.0.1 netmask 0xff000000 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> groups: lo xn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=503<RXCSUM,TXCSUM,TSO4,LRO> ether 0e:c2:a2:36:c1:b4 inet 10.0.0.71 netmask 0xffffff00 broadcast 10.0.0.255 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet manual status: active

这里有两个疑问:

  1. 为什么我没有像以前的 FreeBSD / ubuntu 系统那样获得 RX、TX 字节和数据包计数?我正在使用一个实用程序来解析此响应以获取网络使用情况,但它失败了(无法修改,它是第三方二进制文件)。
  2. FreeBSD 11 中的任何更改,因为它在旧版本中运行良好?我更感兴趣的是解决这个问题或进行配置更改(如果这由某个.conf文件控制)而不是更改我的监视方法(例如解析来自iftop或其他命令的响应)

提前致谢 !

编辑 具体来说,在该二进制文件中使用了一个 C 库来获取结果为零的统计信息。我附上了一个示例代码,它也为 rx/tx 字节返回零值,因为该信息不可用。它使用库getifaddrs中的函数sys/sockets

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <ifaddrs.h>

 struct if_data {
  unsigned char  ifi_type;
  unsigned char  ifi_physical;
  unsigned char  ifi_addrlen;
  unsigned char  ifi_hdrlen;
  unsigned char  ifi_recvquota;
  unsigned char  ifi_xmitquota;
  unsigned long  ifi_mtu;
  unsigned long  ifi_metric;
  unsigned long  ifi_baudrate;

  unsigned long  ifi_ipackets;
  unsigned long  ifi_ierrors;
  unsigned long  ifi_opackets;
  unsigned long  ifi_oerrors;
  unsigned long  ifi_collisions;
  unsigned long  ifi_ibytes;
  unsigned long  ifi_obytes;
  unsigned long  ifi_imcasts;
  unsigned long  ifi_omcasts;
  unsigned long  ifi_iqdrops;
  unsigned long  ifi_noproto;
  unsigned long  ifi_recvtiming;
  unsigned long  ifi_xmittiming;
  struct  timeval ifi_lastchange;
 };


 int main()
 {
  struct ifaddrs    *ifap, *ifa;
  struct if_data    *ifadata = NULL;
  char *dev_name;

  if (getifaddrs(&ifap) < 0) {
    printf ("returning  for null");
    return 1;
  }

  for (ifa = ifap; ifa; ifa = ifa->ifa_next) {

    if (ifa->ifa_flags & 0x01) {
      if ( ifa->ifa_addr->sa_family == AF_LINK) {
        if (ifa->ifa_data) {
          ifadata = (struct if_data *)ifa->ifa_data;
          dev_name = ifa->ifa_name;

          if (ifadata->ifi_ipackets == 0 && ifadata->ifi_opackets == 0)
          {
            printf("returning as zero for %s", dev_name);
            continue;
          }

          printf("name=%s ipkts=%ld opkts=%ld\n", dev_name,
            ifadata->ifi_ipackets, ifadata->ifi_opackets);

          printf("%lu", ifadata->ifi_ibytes);
          printf("%lu", ifadata->ifi_ipackets);
          printf("%lu",  ifadata->ifi_ierrors);
          printf("%lu", ifadata->ifi_iqdrops);
          printf("%lu", ifadata->ifi_imcasts);
          printf("%lu", ifadata->ifi_obytes);
          printf("%lu", ifadata->ifi_opackets);
          printf("%lu",  ifadata->ifi_oerrors);
        }
      }
    }
  }
  freeifaddrs(ifap);
  return 0;
}
freebsd ifconfig
  • 1 个回答
  • 2489 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve