当前位置: 代码迷 >> C语言 >> linux 上查看哪个网卡正在通信
  详细解决方案

linux 上查看哪个网卡正在通信

热度:6263   发布时间:2013-02-26 00:00:00.0
linux 下查看哪个网卡正在通信?
我有多个网卡,eth0,eth1
同时还有vlan eth0:1

这几个网卡都能正常上网,都有自己的配置方案。

那么当我在上网的时候,到底是哪个网卡在通信呢?
如何识别,如果用C++该用什么方法识别呢?

先表示感谢!

------解决方案--------------------------------------------------------
linux下面有个类似ipconfig之类的命令,能看到哪个网卡配置了IP地址
------解决方案--------------------------------------------------------
引用:
我有多个网卡,eth0,eth1
同时还有vlan eth0:1

这几个网卡都能正常上网,都有自己的配置方案。

那么当我在上网的时候,到底是哪个网卡在通信呢?
如何识别,如果用C++该用什么方法识别呢?

先表示感谢!


其实简单,linux下一切皆文件,有几个网卡,/dev里面就有几个对应的文件,都socket他们,每个返回一个fd,然后open,read,剩下的就是分析了,注意数据字节序和报头组成
------解决方案--------------------------------------------------------
1. 抓报文就能看到报文里的mac地址,看对应的是哪个网卡的mac
2. route指令能看到默认是走哪条路由,也就是上网路由了
------解决方案--------------------------------------------------------
ifconfig 察看ip地址mac地址等等
traceroute 察看报文经过路径