怪问题!
uses
WinSock;
procedure TForm2.Button1Click(Sender: TObject);
type
PaPInAddr = ^TaPInAddr;
TaPInAddr = array [0..10] of PInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: array [0..63] of char;//注意!!!!!!!!!!!
I: Integer;
GInitData: TWSADATA;
begin
WSAStartup($101, GInitData);
GetHostName(Buffer, SizeOf(Buffer));
ShowMessage(Buffer);
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do
begin
ShowMessage(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
end.
以上这段代码可以取得本机IP地址,
但把Buffer定义成PChar取出却是乱码,为何?
----Borland手册上说基于零的字符数组(array[0..x] of char)用来储存null结尾字符串而且与PChar值兼容。
另外,如何取得网络中他机IP地址?