(用adsl上网,如何知道因特网上的IP地址呢?)有人知道如何用程序得到本机IP地址?(不要得到内部IP192.168.0.XXX,而要得到在因特网上的IP地址

  • 主题发起人 主题发起人 fly555
  • 开始时间 开始时间
F

fly555

Unregistered / Unconfirmed
GUEST, unregistred user!
(用adsl上网,如何知道因特网上的IP地址呢?)有人知道如何用程序得到本机IP地址?(不要得到内部IP192.168.0.XXX,而要得到在因特网上的IP地址) (10分)<br />如题 
 
没人会吗
 
你用网关和代理,谁知道啊?在于局域网内你哪有公网IP,得到的只是你的网关服务器/代理服务器的公网IP
 
没用代理。
我这是用adsl上的网。有几台机器通过hub联接上的网。
 
什么意思?
 
var
tp:ttcpclient;
strname,straddr:string;
begin
tp:=ttcpclient.create(self);
tp.close;
tp.open;
strname:=tp.LocalHostName;
straddr:=tp.LocalHostAddr;
label1.caption:=strname+'' IP: ''+straddr;
tp.close;
end;
 
我试了,楼上的得出的结果不对.
 
你的结果还是192.1680.XXX
难道取不到的吗?
 
你上网了吗?
没上网的地址当然还是你本地的了
 
sunkin的方法只能得到,本地网卡的IP地址。

再顶一下。
 
你是说你的ADSL是自动拨号,做为路由使局域网上网的吧
 
我用的ADSL是动态IP地址,每次上网都不一样
 
name:='ipconfig &gt; ip.txt';
winexec(pchar(name),0);
 
对,就是通过adsl路由上网的
它的IP地址每次是不一样的,
怎么通过程序确定。
 
可以根据拨号名取拨号的IP地址
function GetDialAddress(dialName: string): string;
const
MaxConnections = 10; //假设最多有10个活动的拨号连接
var
connections : array[0..MaxConnections - 1] of TRasConn;
//拨号连接数组
longSize : Longint;
intAvailabelConnections: Longint;
//活动的拨号连接的实际数目
intIndex : integer;
strTemp : string;
dwResult : DWORD;
dwSize : Longint;
RASpppIP : TRASPPPIP;
//活动的拨号连接的动态IP地址信息
begin
connections[0].dwSize := sizeof(TRasConn);
longSize := MaxConnections * connections[0].dwSize;
//接收活动连接的缓冲区大小
intAvailabelConnections := 0;
//获取所有活动的拨号连接的信息(连接句柄和设置信息)
dwResult := RasEnumConnections(@connections[0],
longSize, intAvailabelConnections);
if 0 &lt;&gt; dwResult then
begin
result := '';
exit;
end;
for intIndex := 0 to intAvailabelConnections - 1 do
if StrPAS(connections[intIndex].szEntryName) = DialName then
begin
dwSize := SizeOf(RASpppIP);
RASpppIP.dwSize := dwSize;
dwResult := RASGetProjectionInfo
(connections[intIndex].hRasConn,
RASP_PppIp, @RasPPPIP, dwSize); //获取动态IP地址
if 0 = dwResult then
begin
strTemp := StrPas(RASpppIP.szIpAddress);
result := strTemp;
end
else result := '';
exit;
end;
end;
 
在INDY MISC上有个IDIPWATCH,用他的LOCALIP
xx:=idipwatch.localip;
 
to locl:
如何用程序取得拨号名呢?
 
ping 机器名 不就得了
 
多人接受答案了。
 
后退
顶部