0

可能重复:
服务器如何找到真实的客户端 IP 地址?

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

我们的网络有一个 squid 代理,所以所有用户都坐在它后面(这是内部 ip 检测的问题:我尝试过的所有 php 脚本都能够 - 充其量 - 检测代理的 ip 而不是客户端的)。

欢迎在 LAMP 服务器上使用任何类型的语言...

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

4

3 回答 3

1

考虑在浏览器中加载的 java 小程序。由于 java 使用它自己的虚拟环境,它将能够向客户端显示本地 IP 地址。

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


Java 获取 IP:如何检查 Java 中的系统 IP 地址/主机名?

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


从您发布的评论中,我可以看到将 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())
于 2012-07-25T14:03:42.443 回答
1

在@German Arlington 的回答之后,我认为您最好的选择是配置 Squid以将X-Forwarded-For标头与 HTTP 请求一起发送:

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

X-Forwarded-For: 192.1.2.3

然后您将能够通过apache_request_headers()读取 PHP 中的 IP 地址

<?php
$headers = apache_request_headers();
echo $headers["X-Forwarded-For"];
?>
于 2012-07-25T14:27:02.110 回答
0

你可能感兴趣

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

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

于 2012-07-25T14:04:13.740 回答