Q&A

  • 바더보드 시리얼 번호 알아내기좀....
제목 되로 입니다.

바더보드의 시리얼번호가 있는걸로 아는데 알수 있는 방법이 없을까요?

많은 조언 부탁드립니다.

1  COMMENTS
  • Profile
    김영대 1999.12.14 18:07
    한 wrote:

    > 제목 되로 입니다.

    > 바더보드의 시리얼번호가 있는걸로 아는데 알수 있는 방법이 없을까요?

    > 많은 조언 부탁드립니다.



    저번에 한번 올렸던 내용같은데...



    각 시스템의 유일한 식별자를 찾으신다면 제한적일수는 있지만

    HDD의 Volume Serial Number 를 사용하시거나 아니면

    Network 카드의 MAC address 를 사용해 보세요



    그리고 대부분의 CPU 에는 serial number 가 없습니다

    BIOS 에도 copyright, release date, version number 등등의 자료가 있습니다



    그러나 HDD의 Volume Serial Number 는 포맷하면 다시 갱신되므로

    좀 위험하고 한가지 괜찮은 것은 GUID 를 사용하는 것입니다

    GUID의 뒤 6 byte는 네트워크 카드가 있다면 MAC address 이고

    no-networking 이나 PPP 의 경우에도 생성되므로 정확히는

    모르지만 id 가 생성되는걸로 봐서는(이건 제가 테스트를 못해봤습니다)

    사용해볼만 합니다



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, ActiveX;



    type

    TForm1 = class(TForm)

    Edit1: TEdit;

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    // Tip: 델파이 IDE에서 Ctrl-Shift-G 를 눌러보세요...

    // GUID가 생성 되는데 뒤에 6숫자(2자리씩 12 바이트) 는 네트워크 환경이

    // 있다면 MAC-address 와 같습니다

    function GetNicAddr: AnsiString;

    const

    GUID_MAX = 72;

    var

    guid: TGuid;

    buf: array[0..GUID_MAX] of WideChar;

    begin

    CoCreateGuid(guid);

    StringFromGUID2(guid, buf, GUID_MAX);

    Result := Copy(WideCharToString(buf),26,12);

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Edit1.Text := GetNicAddr;

    end;



    end.