请教获得动态IP地址 ( 积分: 100 )

  • 主题发起人 主题发起人 xia77
  • 开始时间 开始时间
X

xia77

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
我用下面的程序在别人的电脑上测到的IP地址是动态的IP地址(对方网卡为主板集成) ,而在我自己的电脑上测到的IP地址是静态的IP地址(网卡为单独安装),而且别人无法用这个IP地址访问我的电脑,请问为什么,请熟悉这方面的朋友指点一下,谢谢!

//取得本机IP
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地址(网卡为单独安装),而且别人无法用这个IP地址访问我的电脑,请问为什么,请熟悉这方面的朋友指点一下,谢谢!

//取得本机IP
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;
 
后退
顶部