一、通过网口名称获取网口索引
二、通过网口索引获取MAC地址
主要用于调用sendmsg等接口发送报文时填充网口索引
#include <stdio.h>
#include <stdlib.h>
#include <net/if.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <string.h>
int get_dev_index_by_dev_name(int sock_fd, char *dev)
{
int ret = -1;
struct ifreq ifr;
if (NULL == dev)
{
return -1;
}
memset(&ifr, 0, sizeof(struct ifreq));
snprintf(ifr.ifr_name, IFNAMSIZ, "%s", dev);
ret = ioctl(sock_fd, SIOCGIFINDEX, &ifr);
if (ret < 0)
{
printf("ioctl SIOCGIFINDEX failed, sock_fd:%d, dev:%s\n", sock_fd, dev);
return -errno;
}
return ifr.ifr_ifindex;
}
二、通过网口索引获取MAC地址