Delphi 如何获取本地计算机名和IP地址
typedef struct WSAData{
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
}WSADATA,FAR * LPWSADATA;
--------------------------------------------------------------------------------------
获取计算机名函数:
uses Windows;
function GetHostName:String;
var
ComputerName: array[0..MAX_COMPUTERNAME_LENGTH+1] of char;
Size: Cardinal;
begin
result:='';
Size := MAX_COMPUTERNAME_LENGTH+1;
GetComputerName(ComputerName, Size);
Result:=StrPas(ComputerName);
end;
--------------------------------------------------------------------------------------
获取计算机IP函数:
function HostNameToIP(HostName:string):String;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
result:='';
WSAStartup(2, WSAData);
HostEnt := GetHostByName(PChar(HostName));
if HostEnt <> nil then
begin
with HostEnt^ do
result:= Format('%d.%d.%d.%d',[Byte(h_addr^[0]), Byte(h_addr^[1]),Byte(h_addr^[2]), Byte(h_addr^[3])]);
end;
WSACleanup;
end;
--------------------------------------------------------------------------------------
delphi 获取本机IP地址代码:
uses WinSock;
procedure TForm1.Button2Click(Sender: TObject);
var
aName: array[0..100] of char;
WSData: Twsadata;
a1, a2, a3, a4: byte;
p: PHostEnt;
Comput,
ip: String;
begin
WSAStartup(1,WSData);
try
GetHostName(aName, 100);
p:=GetHostByName(aName);
Char(a1):=p.h_addr_List^[0];
Char(a2):=p.h_addr_List^[1];
Char(a3):=p.h_addr_List^[2];
Char(a4):=p.h_addr_List^[3];
finally
WSACleanup;
end;
Comput:=string(aName); {计算机名}
IP:=IntToStr(a1)+'.'+IntToStr(a2)+'.'+IntToStr(a3)+'.'+IntToStr(a4);
Label1.Caption := ip;
end;
浙公网安备 33010602011771号