用Socket获取本机IP地址和机器名,本程序在DELPHI2007下编译成功!
program proj3_11_CMD;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils, WinSock;
var
wVersionRequested:WORD;
WsaData_x:TWSAData;
Name:array[0..255] of Char;
hostinfo:PHostEnt;
PPInAddr: ^PInAddr;
IPString: String;
begin
try
IPString :='';
wVersionRequested := MAKEWORD(2,0);
if WSAStartup(wVersionRequested,WsaData_x) = 0 then
begin
if gethostname(Name,SizeOf(Name)) = 0 then
begin
hostinfo := gethostbyname(Name);
if Assigned(hostinfo) then
begin
PPInAddr := @(PInAddr(hostinfo.h_addr_list^));
while Assigned(PPInAddr^) do
begin
IPString:=StrPas(inet_ntoa(PPInAddr^^));
Inc(PPInAddr);
end;
WriteLn('本机IP地址是:' + IPString);
WriteLn('本机的名称是:' + Name);
end;
end;
WSACleanup;
end;
ReadLn;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
program proj3_11_CMD;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils, WinSock;
var
wVersionRequested:WORD;
WsaData_x:TWSAData;
Name:array[0..255] of Char;
hostinfo:PHostEnt;
PPInAddr: ^PInAddr;
IPString: String;
begin
try
IPString :='';
wVersionRequested := MAKEWORD(2,0);
if WSAStartup(wVersionRequested,WsaData_x) = 0 then
begin
if gethostname(Name,SizeOf(Name)) = 0 then
begin
hostinfo := gethostbyname(Name);
if Assigned(hostinfo) then
begin
PPInAddr := @(PInAddr(hostinfo.h_addr_list^));
while Assigned(PPInAddr^) do
begin
IPString:=StrPas(inet_ntoa(PPInAddr^^));
Inc(PPInAddr);
end;
WriteLn('本机IP地址是:' + IPString);
WriteLn('本机的名称是:' + Name);
end;
end;
WSACleanup;
end;
ReadLn;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.