【问题标题】:Display local ip in webpage [duplicate]在网页中显示本地 IP [重复]
【发布时间】:2012-07-25 13:53:00
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 为什么不写一个批处理脚本来运行 ipconfig/ifconfig?
  • 我需要这个以非常简单的方式向我的普通用户(完全不懂计算机)显示他们的 ip,这样他们就可以读给我听,我可以使用 vnc 或其他任何东西来远程帮助他们。当然在电话上说:点击开始,选择“执行”,数字“cmd”,然后你有一个黑色的大窗口......它会工作但它会很痛苦:)只是让他们继续我们的 Intranet 网站...太棒了!

标签: php javascript python-2.7


【解决方案1】:

按照@German Arlington 的回答,我认为您最好的选择是 configuring SquidX-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"];
?>

【讨论】:

  • 这个解决方案听起来简单明了!我已将我的 squid 参数更改为“on”并重新启动它并在 php 页面中尝试了您的代码:遗憾的是我得到了代理 ip 而不是客户端的 :(
  • 这是 Squid 本身的问题。也许是 header_replace 指令,或者 Apache 自己被代理了,谁知道呢。您可以尝试在此处描述您的网络拓扑,但您最好再问一个问题。为了证明这个答案是正确的,您可以尝试全新安装 Squid。无论如何,检查日志
  • 我已经在我们拥有的另一台 Squid 服务器上尝试过它 - 遗憾的是 - 它可以工作......我们的 Apache 没有被代理,我在 squid.conf 中找不到任何 header_replace :(
  • ps 不工作的鱿鱼也有 dansguardian... 这可能是问题吗?
  • 这是我的丹斯卫士的错!我在 dansguardian.conf 中设置了两个参数:forwardedfor = on 和 usexforwardedfor = on,效果很好!非常感谢:)
【解决方案2】:

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

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


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

这样您就不必更改当前环境。否则可能会涉及到 squid 重新配置。


从您发布的 cmets 中,我可以看到将 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())

【讨论】:

  • 好吃!任何链接和/或建议以进一步调查? (我是有史以来最穷的程序员):)
  • 打包一个 Java 小程序并在客户端运行一个 Java 运行时对我来说似乎比 Squid 配置中的简单行更有效
  • @Raffaele - 关于工作量,您当然是正确的。由于 OP 没有提供他是否能够以任何方式改变环境的信息,所以我只是提出了替代方案。
  • 您建议的第二种选择,一个小部件,是恕我直言的最佳选择。我自己不建议这样做的唯一原因是,在低端机器上,小部件可能需要大量资源,无论如何,让这个程序在你需要它的几次时始终打开是一种资源浪费
【解决方案3】:

你可能感兴趣

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

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

【讨论】:

    猜你喜欢
    • 2015-06-25
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2012-06-21
    • 2023-03-25
    • 2010-12-22
    • 2019-10-17
    • 1970-01-01
    相关资源
    最近更新 更多