可能重复:
How can a server find real client IP address?显示本地IP在网页
我需要让我的用户发现非常迅速和轻松地将其本地(LAN)的IP。
我们的网络有一个鱿鱼代理,所有的用户坐在它后面(这是一个内部ip检测问题:我试过的所有php脚本都能够 - 最好 - 检测代理的ip而不是客户端)。
任何一种语言中的LAMP服务器上的工作是受欢迎的...
而且在Windows上一个简单的EXE文件可以工作作为“B计划”,但我无法找到任何工作。
可能重复:
How can a server find real client IP address?显示本地IP在网页
我需要让我的用户发现非常迅速和轻松地将其本地(LAN)的IP。
我们的网络有一个鱿鱼代理,所有的用户坐在它后面(这是一个内部ip检测问题:我试过的所有php脚本都能够 - 最好 - 检测代理的ip而不是客户端)。
任何一种语言中的LAMP服务器上的工作是受欢迎的...
而且在Windows上一个简单的EXE文件可以工作作为“B计划”,但我无法找到任何工作。
正在关注@German Arlington的回答,我认为最好的方法是configuring Squid与HTTP请求一起发送X-Forwarded-For
头:
如果设置为“ON”,鱿鱼将在HTTP添加客户端的IP地址 请求其转发。默认情况下,它看起来像:
X-Forwarded-For: 192.1.2.3
然后,你将能够通过apache_request_headers()
<?php
$headers = apache_request_headers();
echo $headers["X-Forwarded-For"];
?>
这个解决方案听起来很简单,直接! 我已经改变我的squid参数为“on”并重新启动它,并在php页面中尝试了你的代码:可悲的是我得到了代理ip而不是客户端的:( – Pitto 2012-07-25 14:44:53
这是Squid本身的问题,也许是'header_replace'指令或Apache代理自己,谁知道,你可以尝试在这里描述你的网络拓扑结构,但是你最好再问一个问题,为了证明这个答案是正确的,你可以尝试一下全新的Squid安装。无论如何,检查日志 – Raffaele 2012-07-25 15:09:24
我已经尝试与我们拥有的另一个Squid服务器并且 - 可悲 - 它能正常工作......我们的Apache不是代理服务器,我在squid.conf中找不到任何header_replace :( – Pitto 2012-07-25 18:25:39
考虑在浏览器中加载的Java小程序。 由于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())
阅读PHP的ip地址为什么不写一个批处理脚本运行ipconfig /使用ifconfig? – Rhys 2012-07-25 13:57:29
我需要这个以非常简单的方式向我展示我的普通用户(完全不是计算机萨维),以便他们可以读取我的信息,我可以使用vnc或其他任何东西来远程帮助他们。 当然在电话上说:点击开始,选择“执行”,数字“cmd”,然后你有一个大的黑色窗口......它会工作,但它会是一个真正的痛苦:) 只要求他们去我们的内部网站...太好了! – Pitto 2012-07-25 14:03:50