//根据传入的ip地址,从arp表中查找mac地址并返回
char *arp_get(const char *req_ip)
{
FILE *proc;
char ip[16];
char mac[18];
char * reply = NULL;
if (!(proc = fopen("/proc/net/arp", "r"))) {
return NULL;
}
/* Skip first line */
while (!feof(proc) && fgetc(proc) != '\n');
/* Find ip, copy mac in reply */
reply = NULL;
while (!feof(proc) && (fscanf(proc, " %15[0-9.] %*s %*s %17[A-Fa-f0-9:] %*s %*s", ip, mac) == 2)) {
if (strcmp(ip, req_ip) == 0) {
reply = safe_strdup(mac);
break;
}
}
fclose(proc);
return reply;
}
根据传入的ip地址,从arp表中查找mac地址并返回
最新推荐文章于 2022-08-03 15:34:52 发布