局域网中的机器通过网关上网,如果通过编程获得本机在internet上的IP地址? (50分)

  • 主题发起人 主题发起人 siaosa
  • 开始时间 开始时间
S

siaosa

Unregistered / Unconfirmed
GUEST, unregistred user!
局域网中的机器通过网关上网,如果通过编程获得internet上的IP地址?
 
通过LAN中的网关上网,一般都是通过端口映射的,也就是本机ip跟网关ip是一致的,
局域网中的机器只是ip对应的端口不同而已。
 
Win2000 Server 开启NAT服务,客户端做一下配置。有路由器更方便!
 
应该是网关的地址映射,和本机地址无关。
 
http://pascalhome.51.net/edit/showip.php
 
用程序应该如何做呢?
 
http://pascalhome.51.net/edit/showip.php :
<?php
print("$REMOTE_ADDR");
?>
 
TO:积步
这是Pascal语言吗? 在Delphi中报错
procedure TForm1.Button1Click(Sender: TObject);
begin
http://pascalhome.51.net/edit/showip.php :
<?php
print("$REMOTE_ADDR");
?>
end;
 
一般来说局域网内用的都是私有IP地址,访问互联网时是通过了地址转换的,你在本机是不能直接获得转换后的公网IP。但也不是绝对的不行,稍微麻烦点,提供点思路给兄台。

方法一
在公网上找到一台机器运行一个服务器端的小程序,然后局域网内的机器去访问那台服务器,服务器获得的IP就是你在局域网内的机器出去的公网IP,然后服务器把这个IP返回给你的机器。
这种方法的解决关键是在互联网上要有一台运行服务器端程序的机器。

方法二
现在很多网站都能够获得访问它的机器的IP,可以自己编一个程序通过HTTP方式访问那些网站,然后分析返回给你的页面就可以获得你自己的IP。
这种方法解决的关键是对返回的页面进行分析。
 
我新作了一个控件,IPMAC可以得倒局域网内指定机子的IP、mac、机器名等等。
 
TO siaosa
那是PHP语言,一种网络程序语言,功能类似ASP,Perl,JSP。
lawway的方法可行,我就是经常访问某些大型论坛看自己的公网IP的。
 
通过LAN中的网关上网,一般都是通过端口映射的,也就是本机ip跟网关ip是一致的,
局域网中的机器只是ip对应的端口不同而已。

同意
 
同意楼上的
即使你用前面的方法获得了自己的ip,也不能简单的以其作服务器地址的。
 
用ICMP查路由吧,就好像用tracert命令返回结果那样,第一个是你本机的IP,第二是网关的IP,第三个就是网关出口的IP啦。INDY里有ICMP的组件.
 
TO:枫
可不可以具体点?
 
后退
顶部