bsd linux 网络,ubuntu – 检测Linux / bsd中的网卡是否为虚拟网卡(docker / veth / etc)

我在

this页面上看到了在ubuntu中获取有关网卡及其统计信息的一些很好的解释.这给出了一个很好的输出,如页面上提到的那样.我也试过阅读其他文档,但找不到标志或类似的东西,我可以区分我的系统上的真实和虚拟网卡.

有区别的方法吗?

谢谢.

检查/ sys / class / net /< device_name>符号链接.如果它指向/ sys / devices / Virtual /,则它是一个虚拟接口.如果它指向“真实”设备(例如,进入/ sys / devices / pci0000:00 /),那么它不是.

编辑:

从代码中,您可以使用readlink来检查设备是否是虚拟的.这是一个非常虚拟的示例代码:

#include

#include

#include

#include

int main(int argc, char **argv) {

char theLink[128];

char thePath[128];

strcpy(thePath,"/sys/class/net/");

memset(theLink,0,128);

if (argc>1) {

strcat(thePath,argv[1]);

} else {

printf("Gimme device\n");

return 1;

}

if (readlink(thePath, theLink, 127)==-1) {

perror(argv[1]);

} else {

if (strstr(theLink,"/Virtual")) {

printf("%s is a Virtual device\n",argv[1]);

} else {

printf("%s is a physical device\n",argv[1]);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值