X
xia77
Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
我用下面的程序,在别人电脑上测到的IP地址是动态的IP地址,而在我自己的电脑上测到的是静态的IP地址,始终不变,而且其它电脑用这个静态地址无法访问我的电脑,为什么,请熟悉这方面的高手能给我指点一下,谢谢!
//取得本机IP
0净鶬P
function LocalIP: string;
type
TaPInAddr = array [0..10] of PInAddr;//uses WinSock;
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);
//取得计算机IP
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^ <> nil do begin
result:=StrPas(inet_ntoa(pptr^^));
//返回结果
Inc(I);
end;
WSACleanup;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:='IP: '+ LocalIP;
end;
我用下面的程序,在别人电脑上测到的IP地址是动态的IP地址,而在我自己的电脑上测到的是静态的IP地址,始终不变,而且其它电脑用这个静态地址无法访问我的电脑,为什么,请熟悉这方面的高手能给我指点一下,谢谢!
//取得本机IP
0净鶬P
function LocalIP: string;
type
TaPInAddr = array [0..10] of PInAddr;//uses WinSock;
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);
//取得计算机IP
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^ <> nil do begin
result:=StrPas(inet_ntoa(pptr^^));
//返回结果
Inc(I);
end;
WSACleanup;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:='IP: '+ LocalIP;
end;