글 수 48
2013.07.10 15:36:27 (*.52.177.249)
24056
랜포트별로 맥 어드레스를 구하고 싶습니다. 어떻게 하면 될까요?
역시 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; }