检查唯一性

解决方案 »

  1.   

    http://www.8421.org/download.php?id=147只适用于Win2000,含源程序。 用iphlpapi.dll调用不插网线也可以得到MAC地址。用NB30 NetBIOS调用,在不插网线的时候不能获取 ...
      

  2.   

    command:='command.com /C nbtstat '+'-a '+edit1.text+' > '+temp;
    //temp是临时文件,你自己加;edit1.text是计算机名,如果是ip,前面用-A
    winexec(pchar(command),sw_hide);
    while not fileexists(temp) do
      sleep(3000);
    //为了临时文件的建立等待3秒种,根据网络速度,可以适当增加此值try
     memo1.lines.loadfromfile(temp);
    except
    //此处不写任何代码,即关闭任何异常。
    end;
      

  3.   

    得到本地mac地址
    function GetMACAddress(LanaNum: Byte; MACAddress: PMACAddress): Byte;
    var
      AdapterStatus: PAdapterStatus;
      StatNCB: PNCB;
    begin
      New(StatNCB);
      ZeroMemory(StatNCB, SizeOf(TNCB));
      StatNCB.ncb_length := SizeOf(TAdapterStatus) +  255 * SizeOf(TNameBuffer);
      GetMem(AdapterStatus, StatNCB.ncb_length);
      try
        with StatNCB^ do
        begin
          ZeroMemory(MACAddress, SizeOf(TMACAddress));
          ncb_buffer := PChar(AdapterStatus);
          ncb_callname := '*              ' + #0;
          ncb_lana_num := Char(LanaNum);
          ncb_command  := Char(NCBASTAT);
          NetBios(StatNCB);
          Result := Byte(ncb_cmd_cplt);
          if Result = NRC_GOODRET then
            MoveMemory(MACAddress, AdapterStatus, SizeOf(TMACAddress));
        end;
      finally
        FreeMem(AdapterStatus);
        Dispose(StatNCB);
      end;
    end;
    用法procedure TForm1.MacAddrClick(Sender: TObject);
    var
      LanaNum: Byte;
      MACAddress: PMACAddress;
      RetCode: Byte;
    begin
      LanaNum := StrToInt(ComboBox1.Text);
      New(MACAddress);
      try
        RetCode := GetMACAddress(LanaNum, MACAddress);
        if RetCode = NRC_GOODRET then
        begin
          Edit1.Text := Format('%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%2.2x',
            [MACAddress[0], MACAddress[1], MACAddress[2],
             MACAddress[3], MACAddress[4], MACAddress[5]]);
        end else
        begin
          Beep;
          Edit1.Text := 'Error';
          ShowMessage('GetMACAddress Error! RetCode = $' + IntToHex(RetCode, 2));
        end;
      finally
        Dispose(MACAddress);
      end;
    end;