MAC 어드레스 찾는 법 구현시에...
글쓴이: mg2000 / 작성시간: 목, 2007/10/25 - 4:49오후
제가 MAC어드레스를 이용해서 프로그램을 만들려고 하는데요.
아래와 같은 코드를
void __attribute__ ((constructor)) my_init(void)
안에 구현하고, so가 로딩될때, MAC어드레스를 구하려고 했습니다.
그런데, 실행하면, ioctl(fd, SIOCGIFHWADDR, iflist) == -1이 되면서,
MAC어드레스를 구하지 못합니다.
errno = 19(No such Device)로 나오는데요.
다른 함수에서 MAC 어드레스를 구하면, 잘 나오는데요.
(사실, 나오다 안나오다 합니다. ㅠ.ㅠ
so로딩시에는 항상 안나오고요.)
so로딩될때는 MAC어드레스를 찾을 수 없나요?
struct ifreq *iflist; struct sockaddr *sa; int fd; iflist = (struct ifreq *)malloc(sizeof (struct ifreq)); fd = socket(PF_INET, SOCK_STREAM, 0); strncpy(iflist->ifr_name, "eth0", strlen("eth0")); if (ioctl(fd, SIOCGIFHWADDR, iflist) == -1) { strcpy((char *)macAddress, ""); return; } sa = &(iflist->ifr_hwaddr); strcpy((char *)macAddress, ether_ntoa((struct ether_addr *) sa->sa_data));
Forums:
댓글 달기