procedure TForm1.ButtonIPClick(Sender: TObject);
type
TaPInAddr = Array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: Array[0..63] of Char;
I: Integer;
GInitData: TWSAData;
IP: String;
begin
Screen.Cursor := crHourGlass;
try
WSAStartup($101, GInitData);
IP:='0.0.0.0';
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then
begin
ShowMessage(IP);
Exit;
end;
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^[I] <> nil do
begin
IP := inet_ntoa(pptr^[I]^);
Inc(I);
end;
WSACleanup;
ShowMessage(IP);
finally
Screen.Cursor := crDefault;
end;
end;
type
TaPInAddr = Array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: Array[0..63] of Char;
I: Integer;
GInitData: TWSAData;
IP: String;
begin
Screen.Cursor := crHourGlass;
try
WSAStartup($101, GInitData);
IP:='0.0.0.0';
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then
begin
ShowMessage(IP);
Exit;
end;
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^[I] <> nil do
begin
IP := inet_ntoa(pptr^[I]^);
Inc(I);
end;
WSACleanup;
ShowMessage(IP);
finally
Screen.Cursor := crDefault;
end;
end;
IP地址有时有两个,一个为本机网卡的IP地址,另一个为ISP分配的IP地址,你需要哪一个IP地址?
...function GetLocalHostIP: String;//取得本机的IP地址
var IP: String
ia: in_addr;
begin
SetLength(IP, 255);
gethostname(PChar(IP), Length(IP));
phs := gethostbyname(PChar(IP));
if phs <> nil then
begin
CopyMemory(@ia.S_addr, phs^.h_addr^, SizeOf(ia.S_addr));
StrCopy(PChar(IP), inet_ntoa(ia));
end;
Result := IP;
end;
To ljm:
然而ISP分配的IP地址如何得到?
Please Mail to:[email protected]
能给我一份吗?关于获取isp分配的IP地址
mail:[email protected]
ping selfname
如果仅是为了要ip,在程序中调用它也可以嘛