글 수 48
2013.07.10 15:36:27 (*.52.177.249)
26442
랜포트별로 맥 어드레스를 구하고 싶습니다. 어떻게 하면 될까요?
역시 ifconfig의 결과에서 구하는 것이 가장 정확합니다.
정보가 너무 많죠? grep로 축소할 수 있습니다.
]$ ifconfig eth1 | grep 'HWaddr'
처럼 말이죠. 자, 이 명령을 이용해서 HWaddr 문자열을 찾고 이후에 나오는 맥 어드레스를 구해 보겠습니다.
#define BUF_SIZE 1024
int main( void)
{
FILE *fp;
char buff[BUF_SIZE];
char *pos;
fp = popen( "ifconfig eth1 | grep 'HWaddr'", "r");
if ( NULL != fgets( buff, BUF_SIZE, fp)){
pos = strstr( buff, "HWaddr");
if ( NULL != pos){
printf( "eth0 MAC Address is %s\n", pos+7);
} else {
printf( "eth0 is not valid.\n");
}
}
else {
printf( "MAC Address not found.\n");
}
pclose(fp);
return 0;
}


