c
리눅스 IP충돌 체크
afewgood
2022. 9. 8. 09:21
int ip_conflict_check(char *device, char *ip)
{
FILE *fp;
char cmd[64], buf[128];
memset(cmd, 0x00, sizeof(cmd));
sprintf(cmd, "arping -q -D -I %s -c 1 %s; echo $?", device, ip);
if((fp=popen(cmd, "r")) == NULL)
{
perror("popen() Fail");
return -1;
}
memset(buf, 0x00, sizeof(buf));
while(1)
{
if(fgets(buf, sizeof(buf), fp) == NULL) break;
}
pclose(fp);
return buf[0]-0x30;
}
int main(void)
{
char *device="eth0"; //"wlan0" //Network (Ethernet or WiFi) Interface Device
char *ip="192.168.0.254"; //체크하고자 하는 IP
ip_conflict_check(device, ip);
}