在网页中显示本地IP

时间:2012-07-25 13:53:00

标签: php javascript python-2.7

  

可能重复:
  How can a server find real client IP address?

我需要让我的用户快速轻松地找到他们的本地(LAN)IP。

我们的网络有一个squid代理,所以所有用户都坐在它后面(这是内部ip检测的一个问题:我尝试过的所有PHP编程都能 - 最好 - 检测代理的ip而不是客户端)。 / p>

欢迎任何在LAMP服务器上工作的语言......

Windows上的一个简单的EXE文件也可以作为“计划b”工作,但我找不到任何工作。

3 个答案:

答案 0 :(得分:1)

考虑在浏览器中加载的java applet。 由于java使用自己的虚拟环境,因此它可以向客户端显示本地IP地址。

开始的好方法我猜 - > http://reglos.de/myaddress/MyAddress.html


让Java获取IP:How can i check System IP Address/Host Name in Java?

这样您就不必改变当前的环境。否则它可能会涉及鱿鱼重新配置。


根据您发布的评论,我可以看到向客户提供IP的目的是让他们阅读并允许您远程连接。您还提到在客户端运行应用程序是一种选择。这立即将我推向BGInfo http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx - 特别是如果客户端操作系统是Windows。


简单的Java aplet放在页面上:

function myIP(){ var vi="uses java to get the users local ip number"
    var yip2=java.net.InetAddress.getLocalHost();   
    var yip=yip2.getHostAddress();
  return yip;
}//end myIP

alert("your machine's local network IP is "+ myIP())

答案 1 :(得分:1)

按照@German Arlington的回答,我认为最好的选择是configuring Squid发送X-Forwarded-For标头以及HTTP请求:

  

如果设置为“on”,Squid会将您客户端的IP地址附加到HTTP中   要求它转发。默认情况下,它看起来像:

X-Forwarded-For: 192.1.2.3

然后,您将能够通过apache_request_headers()

在PHP中读取IP地址
<?php
$headers = apache_request_headers();
echo $headers["X-Forwarded-For"];
?>

答案 2 :(得分:0)

您可能对

感兴趣

http://roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html

并且通常在http标题中应该包含您要查找的信息