您知道在没有套接字的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/