【问题标题】:How to get IP of current ExitNode using TOR?如何使用 TOR 获取当前 ExitNode 的 IP?
【发布时间】:2016-06-14 18:12:09
【问题描述】:

我需要一个 PHP 脚本,在我的隐藏服务中显示当前 ExitNode 的 IP,就像这个页面 https://check.torproject.org/。如果我尝试使用 $ip=$_SERVER['REMOTE_ADDR'] 它会返回 127.0.0.1。请问,有人可以帮帮我吗?

【问题讨论】:

  • 如果出口节点发送一个标头,那么它是可能的。否则你只能得到连接的IP——也许它甚至是出口节点的IP,但我对tor网络不是很熟悉。

标签: php service hidden tor


【解决方案1】:

对于隐藏服务,没有传统意义上的“ExitNode”。由于您没有退出 Tor 网络,因此既不需要也不需要使用退出中继。

当您配置隐藏服务时,托管隐藏服务的中继上的 Tor 实例充当本地 Web 服务器的代理。 到您的隐藏服务的所有流量都将具有远程地址 127.0.0.1*

为了保护隐藏服务的位置,电路中的最终中继不知道它所中继的流量是发往托管在您的服务器/IP 地址上的隐藏服务。

查看Tor Hidden Service Protocol了解具体详情。

*127.0.0.1 不一定总是远程 IP 到隐藏服务的情况。如果 Tor 和隐藏服务在不同的接口上运行,则远程地址将是 Tor 正在侦听的接口的 IP 地址。您可能还会遇到 Tor 中继通过某种私有隧道(例如 VPN)连接到隐藏服务的情况,在这种情况下,您会从隧道中看到 Tor 中继的远程地址。但在我能想到的几乎所有情况下,远程地址将始终是您的 Tor 中继的地址,并且永远不会透露有关用于将客户端连接到隐藏服务的电路中最后一个中继的任何信息。

【讨论】:

    【解决方案2】:

    试试这个$_SERVER['HTTP_X_FORWARDED_FOR'],它将返回Web服务器接收请求的实际物理地址。

    【讨论】:

    • 其实这是客户端发送的一个header。服务器设置REMOTE_ADDR,其中包含客户端的IP(或者如果中间有代理,那么代理就是客户端)。
    • 我用getenv('HTTP_X_FORWARDED_FOR')试过了,还是一样,但是没用。
    • 我检查了每一个相关的问题,但我没有找到任何东西,我真的需要这个脚本。请有人帮助我:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2020-05-03
    • 2022-06-30
    相关资源
    最近更新 更多