gpt4 book ai didi

c - 查找未运行的网络接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:18 25 4
gpt4 key购买 nike

如果我运行以下代码,它只会打印处于 RUNNING 状态的接口(interface)。有没有办法获取未运行且可能处于 UP 或 DOWN 状态的接口(interface)列表?

int main()
{
struct ifreq *pIfr;
struct ifconf ifc;
char buf[1024];
int s, i, j;

s = socket(AF_INET, SOCK_DGRAM, 0);
if (s==-1)
return -1;

ifc.ifc_len = sizeof(buf);
ifc.ifc_buf = buf;
ioctl(s, SIOCGIFCONF, &ifc);

pIfr = ifc.ifc_req;
for (i = ifc.ifc_len / sizeof(struct ifreq); --i >= 0; pIfr++) {
printf("name=%s\n", pIfr->ifr_name);
}
close(s);
return 0;
}
~

最佳答案

check man netdevice -- "内核用所有正在运行的当前 L3 接口(interface)地址填充 ifreqs: "

如果接口(interface)未运行,地址定义不明确...但您可以获取名称:

“可以通过/proc/net/dev 找到没有地址或没有设置 IFF_RUNNING 标志的接口(interface)名称。”

关于c - 查找未运行的网络接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4961051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com