gpt4 book ai didi

在 Linux 中获取 IP 地址的接口(interface)名称的 C 代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:05 25 4
gpt4 key购买 nike

如何从 C 代码获取 linux 中 IP 地址的接口(interface)名称?

例如我想获取分配给 IP 地址 192.168.0.1 的接口(interface)名称(如 etho 、 eth1 、 l0 )

最佳答案

使用/proc/net/arp 你可以匹配它。这是一个命令行工具示例。

用法:通过ip 192.168.0.1获取设备

#include <stdio.h>
#include <fcntl.h>

int main(int argc, char **argv){
if (argc < 2) return 1;
FILE *fp = fopen("/proc/net/arp", "r");
char ip[99], hw[99], flags[99], mac[99], mask[99], dev[99], dummy[99];
fgets(dummy, 99, fp); //header line
while (fscanf(fp, "%s %s %s %s %s %s\n", ip, hw, flags, mac, mask, dev) != EOF)
if (!strcmp(argv[1],ip))
printf("%s\n",dev);
return 0;
}

关于在 Linux 中获取 IP 地址的接口(interface)名称的 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27327909/

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