您知道在没有套接字的c接口eth0中访问和管理的方式吗???

最佳答案

为什么不按照C代码在Shell上调用ifconfig命令的方式来做一些事情:

system("ifconfig eth0 ...");


这将消除对文件描述符的需求,但允许您使用命令来管理设备。做一个man ifconfig来看看如何构造您的ifconfig请求来管理您需要对接口执行的任何操作。

如果您需要比这更低的级别,则可以简单地打开一个原始套接字...分配要操作的以太网设备的索引...,然后根据需要使用ioctl()进行配置:

if ((fd = socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW)) == -1) {
  perror("socket");
}

struct ifreq req;
strncpy(req.ifr_name, "eth0", IFNAMSIZ-1);
if (ioctl(fd, SIOCGIFINDEX, &ifreq) < 0)
  perror("SIOCGIFINDEX");


然后您就可以处理eth0 ...

关于c - 无需套接字即可访问和管理 native Eth0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9974125/

10-09 04:13