我们可以用php cURL欺骗$ _SERVER ['REMOTE_ADDR'] /用户ip吗?

Jo *_* E. 6 php ip curl ip-address

好吧,标题基本上是这样说的.

但欲了解更多信息..

这种方法有效..

$ip = '1.1.1.1';
curl_setopt($handle, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "X_FORWARDED_FOR: $ip"));
Run Code Online (Sandbox Code Playgroud)

它只keys$_SERVER阵列上添加这两个

  • HTTP_REMOTE_ADDR
  • HTTP_X_FORWARDED_FOR

关键REMOTE_ADDR仍然是一样的.

可以REMOTE_ADDR改吗?答案在这里NO.但是评论还说,它可能不是用户的真实IP地址,因为它可能被代理和其他方法隐藏.这就是为什么一般规则不依赖于$_SERVER['REMOTE_ADDR']安全功能的原因.

除此之外还有一个curl php方法来隐藏/掩盖/更改ip?(除了上面的代码之外的任何其他php方法都可以.)

有没有办法对抗方法有没有办法获得用户的ACTUAL REAL IP

干杯!

dec*_*eze 18

No. $_SERVER['REMOTE_ADDR']是客户端用于连接到Web服务器的实际物理IP地址,由三向TCP握手确认.没有办法通过设置简单的HTTP标头来伪装它.您也无法使webserver/PHP以任何方式用其他内容覆盖此值.$_SERVER['REMOTE_ADDR']是从TCP连接信息,周期设置的.

要实际欺骗IP地址,您必须更深入地了解实际网络层,并对中间位置/代理中的网络设备/人员进行某种程度的控制/实际上能够从IP地址建立TCP连接除了你建立它的那个.

有没有办法对抗方法或有没有办法获得用户的ACTUAL REAL IP?

不可以."用户的实际IP地址"是您的网络服务器从中获取连接的地址.没有其他地址适合您.客户端从某个IP连接到您的服务器,这通过三方TCP握手确认,这是您知道的该客户端的唯一地址.这个客户端可能是代理或NAT路由器(即代理)或其他东西,你根本就不知道,也不应该对你产生任何影响.

  • 如果我不相信你的答案,我觉得这是错的.谢谢! (3认同)