Thursday, July 27, 2006

MAC 주소 얻어 오기 소스

#include
#include
#include
#include
#include
#include
#include

#define mgmt_log_err(portid, args...) printf(args)

int GetGlobalMacAddr(char *pstHwAddr)
{
int sock, ret;
struct ifreq ifr;

sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sock < 0) {
mgmt_log_err(0, "GetGlobalIpAddr, socket() error ");
return 0;
}

strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name));

// Get HW Adress
ret = ioctl(sock, SIOCGIFHWADDR, &ifr);
if (ret < 0) {
mgmt_log_err(0, "Get IP Address Error ");
close(sock);
return 0;
}

memcpy(pstHwAddr, &ifr.ifr_hwaddr.sa_data, 6);
close(sock);

return 0;
}

main ()
{
int i;
unsigned char HwAddr[6];

GetGlobalMacAddr(HwAddr);

for(i=0;i<6;i++)
{
printf("%02x:", HwAddr[i]);
}
printf("\n");

}

No comments :