我需要让我的用户快速轻松地找到他们的本地(LAN)IP。
我们的网络有一个squid代理,所以所有用户都坐在它后面(这是内部ip检测的一个问题:我尝试过的所有PHP编程都能 - 最好 - 检测代理的ip而不是客户端)。 / p>
欢迎任何在LAMP服务器上工作的语言......
Windows上的一个简单的EXE文件也可以作为“计划b”工作,但我找不到任何工作。
答案 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)