System unique id 추출
2016.06.23 00:39
Ancient C codes. :-p
Windows
/* Get cpu-id */
#include <stdio.h>
#include <intrin.h>
#include <intrin.h>
int main() {
int b[4];
int b[4];
for (int a = 0; a < 5; a++) {
__cpuid(b, a);
printf("The code %i gives %i, %i, %i, %i\r\n", a, b[0], b[1], b[2], b[3]);
}
__cpuid(b, a);
printf("The code %i gives %i, %i, %i, %i\r\n", a, b[0], b[1], b[2], b[3]);
}
return 0;
}
}
/* Get MAC Address */
#pragma comment(lib, "Iphlpapi.lib")
#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>
#include <iphlpapi.h>
#include <stdio.h>
int main() {
IP_ADAPTER_INFO *info = NULL, *pos;
DWORD size = 0;
IP_ADAPTER_INFO *info = NULL, *pos;
DWORD size = 0;
GetAdaptersInfo(info, &size);
info = (IP_ADAPTER_INFO *)malloc(size);
GetAdaptersInfo(info, &size);
//for (pos = info; pos != NULL; pos = pos->Next) {
pos = info;
if (info != NULL) {
printf("Mac : ");
printf("%2.2x", pos->Address[0]);
for (unsigned int i = 1; i < pos->AddressLength; i++)
printf(":%2.2x", pos->Address[i]);
printf("\r\n");
}
//}
pos = info;
if (info != NULL) {
printf("Mac : ");
printf("%2.2x", pos->Address[0]);
for (unsigned int i = 1; i < pos->AddressLength; i++)
printf(":%2.2x", pos->Address[i]);
printf("\r\n");
}
//}
free(info);
return 0;
}
}
Linux
/* Get cpu-id */
#include <stdio.h>
int main() {
int a, b;
int a, b;
for (a = 0; a < 5; a++) {
__asm__("cpuid"
:"=a"(b) // EAX into b (output)
:"0"(a) // a into EAX (input)
:"%ebx","%ecx","%edx"); // clobbered registers
__asm__("cpuid"
:"=a"(b) // EAX into b (output)
:"0"(a) // a into EAX (input)
:"%ebx","%ecx","%edx"); // clobbered registers
printf("The code %i gives %i\n", a, b);
}
}
return 0;
}
}
/* Get MAC Address */
#include <stdio.h> //printf
#include <string.h> //strncpy
#include <sys/ioctl.h>
#include <net/if.h> //ifreq
#include <unistd.h> //close
int main() {
int fd;
struct ifreq ifr;
char *iface = "eth0";
unsigned char *mac;
fd = socket(AF_INET, SOCK_DGRAM, 0);
#include <string.h> //strncpy
#include <sys/ioctl.h>
#include <net/if.h> //ifreq
#include <unistd.h> //close
int main() {
int fd;
struct ifreq ifr;
char *iface = "eth0";
unsigned char *mac;
fd = socket(AF_INET, SOCK_DGRAM, 0);
ifreq* it = ifc.ifc_req;
const ifreq* const end = it + (ifc.ifc_len / sizeof(ifreq));
const ifreq* const end = it + (ifc.ifc_len / sizeof(ifreq));
ifr.ifr_addr.sa_family = AF_INET;
//for ( ; it != end ; ++it) {
strncpy(ifr.ifr_name , iface , IFNAMSIZ-1);
strncpy(ifr.ifr_name , iface , IFNAMSIZ-1);
//strncpy(ifr.ifr_name , it->ifr_name , IFNAMSIZ-1);
ioctl(fd, SIOCGIFHWADDR, &ifr);
close(fd);
ioctl(fd, SIOCGIFHWADDR, &ifr);
close(fd);
mac = (unsigned char *)ifr.ifr_hwaddr.sa_data;
//display mac address
printf("Mac : %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n" , mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
//}
return 0;
}
출처:
- https://en.wikipedia.org/wiki/CPUID
- http://stackoverflow.com/questions/2069855/getting-machines-mac-address-good-solution
- http://www.binarytides.com/c-program-to-get-mac-address-from-interface-name-on-linux/
- http://stackoverflow.com/questions/1779715/how-to-get-mac-address-of-your-machine-using-a-c-program
- http://stackoverflow.com/questions/1779715/how-to-get-mac-address-of-your-machine-using-a-c-program
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 툴 북마크 | 꿈돌이 | 2021.02.11 | 81307 |
19 | Git .gitignore | 꿈돌이 | 2017.03.18 | 816 |
18 | node.js 전역 모듈 제거 | 꿈돌이 | 2017.03.16 | 3601 |
» | System unique id 추출 | 꿈돌이 | 2016.06.23 | 856 |
16 | Sass 관련 링크 | 꿈돌이 | 2016.06.12 | 353 |
15 | 디렉터리 안에 신규 파일 생성여부 확인 | 꿈돌이 | 2016.04.26 | 1964 |
14 | Chromium chrome://flags 설정 파일의 위치 | 꿈돌이 | 2016.04.12 | 463 |
13 | MS-Windows에서 php_screw 사용하기 | 꿈돌이 | 2015.11.17 | 5733 |
12 | C# GDI 좌표 | 꿈돌이 | 2015.08.31 | 136399 |
11 | C# Dictionary | 꿈돌이 | 2015.08.28 | 582 |
10 | 브라우저 설정 - HTML5 그리드 | 꿈돌이 | 2015.08.25 | 205 |
9 | 안드로이드 루팅없이 특정 어플 실행 막기 | 꿈돌이 | 2015.06.28 | 1241 |
8 | 원격데스크톱 연결 - 로컬계정 사용 | 꿈돌이 | 2015.05.25 | 31336 |
7 | 윈도우8.1 프리징 해결 방법 | 꿈돌이 | 2015.04.07 | 556 |
6 | xe 업로드 된 파일이 첨부목록에서 사라질 경우 | 꿈돌이 | 2015.03.30 | 1226 |
5 | php-mailer 메일 전송 안 될 경우 | 꿈돌이 | 2015.03.28 | 1038 |
4 | GTK3/Cairo 버튼 클릭시 이벤트 처리 | 꿈돌이 | 2015.03.16 | 8706 |
3 | 윈도우8.1 core 버전에서 원격데스크톱 사용 | 꿈돌이 | 2015.03.13 | 2517 |
2 | C sprintf 숫자에서 문자열로 변환 | 꿈돌이 | 2015.03.10 | 408 |
1 | C 문자열 처리를 위한 다차원 배열 | 꿈돌이 | 2015.03.02 | 547 |