我正在调解从客户端A到服务器B的请求。客户端A可能是手机或笔记本电脑。服务器B想要知道客户端A的IP地址,但他们正在寻找$_SERVER['REMOTE_ADDR']
。因为我打到服务器B,他们得到$_SERVER['REMOTE_ADDR']
的“错误”值 - 他们正在获取我的服务器的IP地址。我可以做些什么来让服务器B在他们的端点上访问$_SERVER['REMOTE_ADDR']
时看到客户端的IP地址?
2
A
回答
5
这发生在一个无法被PHP脚本覆盖的图层上。 X-Forwarded-For
标头存在用于中继真正的客户端IP,但远程服务器必须支持这个容易被欺骗的值。
$header = "X-Forwarded-For: {$_SERVER['REMOTE_ADDR']}, {$_SERVER['SERVER_ADDR']}";
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array($header));
0
编辑:之前的答案是完美的。这仅适用于您自己的dev-ip干扰客户端统计信息的情况。
在没有更多的信息,在最基本的层面上,你应该删除自己的“开发者的IP”,所以,你没有任何统计数据/数据/日志包括...
你的IP可能与所讨论的服务器不同:
<?php
$dev_ip = '217.12.14.14' // your dev IP address
if ($_SERVER['REMOTE_ADDR'] == $dev_ip){
// do nothing
} else {
// do|show|log something
}
这不考虑动态IP地址分配(而不是静态IP)。动态IP通常由ISP分配,这是导致更多问题的原因。
相关问题
- 1. $ _SERVER ['REMOTE_ADDR']不返回IP地址
- 2. $ _SERVER ['REMOTE_ADDR']没有给出正确的IP地址
- 3. htaccess SetEnvIf Remote_Addr在IP地址范围
- 4. $ _SERVER ['REMOTE_ADDR']总是isset()?
- 5. php/ajax REMOTE_ADDR设置为IP伪造网络适配器
- 6. AppleScript设置IP地址
- 7. remote_addr不返回IPv4地址
- 8. 为什么getenv('REMOTE_ADDR')给我一个空白的IP地址?
- 9. 为什么$ _SERVER [“REMOTE_ADDR”]显示与我的外部IP不同的IP?
- 10. 为什么$ _SERVER ['REMOTE_ADDR']返回127.0.0.1
- 11. nginx为php $ _SERVER准备set_proxy_header ['REMOTE_ADDR']
- 12. 如何在$ _SERVER ['REMOTE_ADDR']中设置通配符?
- 13. 替代$ _SERVER ['REMOTE_ADDR'] in php
- 14. PHP - > $ _SERVER ['REMOTE_ADDR'和Octects
- 15. PHP $ _SERVER ['REMOTE_ADDR']显示IPv6
- 16. $ _SERVER ['REMOTE_ADDR']值得信赖吗?
- 17. 如何将REMOTE_ADDR设置为HTTP_X_REAL_IP?
- 18. 本地nodejs设置假冒网址
- 19. 如何将IP地址设置为子域的CNAME记录
- 20. 在Node-Red中将IP地址设置为UDP-out节点
- 21. 将Arduino Wi-Fi屏蔽设置为静态IP地址
- 22. 是否可以将任意ip地址设置为tcpClient?
- 23. $ _SERVER ['REMOTE_ADDR']返回5个数字长的IP
- 24. 如何将IP地址解析为Haskell中的IP地址?
- 25. 来自getaddrinfo的虚假IP地址&inet_ntop
- 26. 使用Javascript创建假IP地址
- 27. IP地址位置
- 28. php:geting ip地址
- 29. 在LWP :: UserAgent中设置IP地址
- 30. 设置Android模拟器IP地址
+1打我吧:) - 此外,请参阅此处了解服务器B如何检测客户端A的IP(注意REMOTE_ADDR是您查看的最后一个地方) - http://stackoverflow.com/questions/1634782/what - 是最准确的方式检索一个用户正确的ip地址在php – deizel