【发布时间】:2012-03-11 10:32:37
【问题描述】:
使用 $_SERVER['REMOTE_ADDR'];在php中
【问题讨论】:
-
如果您只是在谈论隐藏自己的 IP 地址,则属于超级用户。但是,FWIW,使用 Tor。
-
请解释您的问题的背景;为什么需要它,它与开发/调试代码有什么关系?
标签: php http httpwebrequest ip-address
使用 $_SERVER['REMOTE_ADDR'];在php中
【问题讨论】:
标签: php http httpwebrequest ip-address
如果您尝试从与您自己不同的 IP 访问网站,则需要使用代理服务器。 Wikipedia 有更多信息。
【讨论】:
对此我有几个选择。我会从简单到复杂。
首先,您可以使用代理服务器,并通过您的程序或浏览器发出的HTTP 请求 请求他为您获取资源。代理服务器将扮演在您的位置向目标服务查询资源的角色。
示例:
您要检索域stackoverflow.com 的主页。您要求代理服务器要求 stackoverflow 的 HTTP 服务器将主页发送给他,他会将其转发给您。
对于 SO 网络服务器,超全局 $_SERVER['REMOTE_ADDR'] 变量将对应于代理服务器的 IP 地址,而不是您的。但是,HTTP 协议实现了一些字段,例如HTTP_VIA、HTTP_X_FORWARDED_FOR 或HTTP_FORWARDED,可用于了解当前 HTTP 请求是否由代理发出。
透明代理不会指定这些字段,也不会修改您的请求,而非透明代理可能会显示原始请求者的原始 IP 地址。你必须使用一个可靠的代理,它会按照你的意愿行事。要考虑的另一件事是在您和代理之间使用SSL tunnel 以避免窃听。
第二种解决方案是使用 VPN(虚拟专用网络)服务器。完全解释它是如何工作的太复杂了,但请记住,当您使用 VPN 服务(如 l2tpd、pptpd ...)连接到计算机时就像你和这台电脑在同一个局域网上一样。所以你可以透明地向网络服务器发出请求,他永远不会知道你的真实 IP 地址是什么。
第三种解决方案可能是使用基于链接节点的网络,例如TOR。这是一个您可以连接的免费网络,对于普通人来说,您将是完全匿名的。 TOR 网络的力量是提供一个由许多节点组成的网络,每个节点都不知道其他节点的任何信息,所以即使连接到 TOR 网络的人也无法知道你的任何信息。如果您有兴趣,我建议您阅读更多相关信息。
还有更复杂的其他解决方案,例如 TCP 会话劫持,通常用于伪造 IP 地址并从字面上窃取另一台计算机的 TCP 连接,但这超出了本答案的范围。 p>
【讨论】: