Delphi自定义过程获取本机ip,名字,用户名

来源:互联网 发布:win10没有网络图标 编辑:程序博客网 时间:2024/04/29 08:35
//取本机的 IP 地址

function ComputerLocalIP: string;
var
  ch: array[1..32] of char;
  wsData: TWSAData;
  myHost: PHostEnt;
  i: integer;
begin
  Result := '';
  if WSAstartup(2,wsData)<>0 then Exit; // can’t start winsock
  try
    if GetHostName(@ch[1],32)<>0 then Exit; // getHostName failed
  except
    Exit;
  end;
  myHost := GetHostByName(@ch[1]); // GetHostName error
  if myHost=nil then exit;
  for i:=1 to 4 do
  begin
    Result := Result + IntToStr(Ord(myHost.h_addr^[i-1]));
    if i<4 then
      Result := Result + '.';
  end;
end;

//取本机的计算机名

{ ComputerName }

function ComputerName: string;
var
  FStr: PChar;
  FSize: Cardinal;
begin
  FSize := 255;
  GetMem(FStr, FSize);
  Windows.GetComputerName(FStr, FSize);
  Result := FStr;
  FreeMem(FStr);
end;

//取Windows登录用户名

{ WinUserName }

function WinUserName: string;
var
  FStr: PChar;
  FSize: Cardinal;
begin
  FSize := 255;
  GetMem(FStr, FSize);
  GetUserName(FStr, FSize);
  Result := FStr;
  FreeMem(FStr);
end;