get ip and computer name.txt

来自「Delphi编程练习:取得本机IP地址和局域网计算机名。」· 文本 代码 · 共 52 行

TXT
52
字号
//取本机IP
function Tfrm_Main.GetLocalIP : string;
type 
  TaPInAddr = array [0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr; 
var 
  phe  : PHostEnt; 
  pptr : PaPInAddr; 
  Buffer : array [0..63] of char; 
  I    : Integer; 
  GInitData      : TWSADATA;
begin
  WSAStartup($101, GInitData);
  Result :='';
  GetHostName(Buffer, SizeOf(Buffer));
  phe :=GetHostByName(buffer);
  if phe = nil then Exit;
  pptr := PaPInAddr(Phe^.h_addr_list);
  I := 0;
  while pptr^[I] <> nil do begin
    result:=StrPas(inet_ntoa(pptr^[I]^));
    Inc(I);
  end;
  WSACleanup; 
end;

//根据IP取计算机名
Function Tfrm_Main.GetNameByIP(mIP:string; var Name:string):boolean;
var
  PHt:PHostEnt;
  WSData: TWSAData;
  i:Word;
  j:integer;
  k:u_long;
begin
  result:=false;
  i:=MAKEWORD(1,1);
  if WSAStartup(i,WSData)<>0 then exit;
  k:=inet_addr(PChar(MIP));
  PHt:=gethostbyaddr(@k,4,PF_INET);
  if PHt=nil then
  begin
    j:=WSAGetLastError;
    Name:='Error:'+inttostr(j-WSABASEERR);
  end
  else
  begin
    Name:=PHt.h_name;
    result:=true;
  end;
  WSACleanup;
end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?