如何得到机器的网卡地址?

解决方案 »

  1.   

    不提理解,你到底说的是在windows下,还是在delphi中,如果是在windows下直接运行winipcfg就可以了(只要你的驱动有安装),在delphi 中,呵呵,不好意思我先查一下!
      

  2.   

    补上一点:DELPHI中可以通过BIOS和GUID,还有,一共几种方法,找本网络编程的书看看!
      

  3.   

    function GetNetBIOSAddress : string;
    var  ncb  : TNCB;
      status  : TAdapterStatus;
      lanenum : TLanaEnum;  procedure ResetAdapter (num : char);
      begin
        fillchar(ncb,sizeof(ncb),0);
        ncb.ncb_command:=char(NCBRESET);
        ncb.ncb_lana_num:=num;
        Netbios(@ncb);
      end;var
      lanNum  : char;
      address : record
                 part1 : Longint;
                 part2 : Word;//Smallint;
                end absolute status;
    begin
      Result:='';  fillchar(ncb,sizeof(ncb),0);
        ncb.ncb_command:=char(NCBENUM);
        ncb.ncb_buffer:=@lanenum;
        ncb.ncb_length:=sizeof(lanenum);
      Netbios(@ncb);  if lanenum.length=#0 then exit;
      lanNum:=lanenum.lana[0];  ResetAdapter(lanNum);  fillchar(ncb,sizeof(ncb),0);
        ncb.ncb_command:=char(NCBASTAT);
        ncb.ncb_lana_num:=lanNum;
        ncb.ncb_callname:='10.65.40.111';//这里改变ip,可以是局域网的其他主机
        ncb.ncb_buffer:=@status;
        ncb.ncb_length:=sizeof(status);
      Netbios(@ncb);
      ResetAdapter(lanNum);  Result:=Format('%x%x',[address.part1,address.part2]);
    end;