第一次写博客,希望将自己学到的的东西记录下来,同时也分享给大家。
如果你看到我写的文章,若有不到之处,还望多多指教。
我们进入正题吧:在linux下面获取网卡IP地址、MAC地址、RX_BYTES、TX_BYTES。
我的思路是:
1、读取“/proc/net/dev”这个路径文件,获取rx_bytes、tx_bytes的值
2、在这个文件中记录网络接口的名称,再通过socket与ioctl获取IP地址与MAC地址。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct net{
char name[128];
char mac[30];
char ip[30];
unsigned long long rx_bytes;
unsigned long long tx_bytes;
};
enum if_item
{
RX_BYTES = 0,
RX_PACKETS,
RX_ERRS,
RX_DROP,
RX_FIFO,
RX_FRAME,
RX_COMPRESSED,
RX_MULTICAST,
TX_BYT