查找本机IP地址 ( 积分: 0 )

  • 主题发起人 主题发起人 xia77
  • 开始时间 开始时间
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;
 
我也不太懂
 
你是不是通过陆游器上网的?如果是那你这样并得不到公网IP,这只是你内网IP。
 
后退
顶部