2011-03-20 191 views
0

我只能从我的位置从NAT和代理后面访问互联网。然而,This site也显示了我的机器的私有LAN地址,以及我的NAT的公共地址。他们显然在过程中使用JavaScript,但我只能找到他们设置值的代码,而不是他们如何找到它。那么,我们如何才能找出使用javascript的客户端机器的私有IP地址?服务器如何找到真实的客户端IP地址?

回答

1

你确定你的背后是只是一个NAT路由器?如果您使用代理服务器,代理服务器可能会添加X-Forwarded-For标头。

+0

我后面至少一个NAT,也许更多。该页面确实表示检测到透明代理,但它显示的代理地址是我的公共IP地址,而不是我在浏览器中使用的私有代理。 – apoorv020 2011-03-20 19:55:51

+0

是的,代理正在头中发送'X-forwarded-for'。只需使用http://www.ericgiguere.com/tools/http-header-viewer.html进行检查。 – apoorv020 2011-03-21 04:38:09

2

他们使用的是Java为:

<span class="pbb" id="lanip"><b>Router IP Address Testing...</b></span> 
<script> 
function MyAddress(IP) 
{ document.getElementById("lanip").innerHTML = IP; } 
</script> 
<applet code="MyAddress.class" MAYSCRIPT width=0 height=0> 
You Need To Enable Java For This To Work 
</applet> 
+0

但我认为这段代码只会更新显示的html元素内的值。这仍然留下了问题,他们如何检测IP地址? – apoorv020 2011-03-20 20:12:24

+0

MyAddress.class applet正在做它,它是Java代码。禁用Java,它可能不会工作。以下是讨论Java代码的主题:http://www.exampledepot.com/egs/java.net/Local.html – BMitch 2011-03-20 21:21:23