相关疑难解决方法(0)

PHP获得真正的IP(代理检测)

我确实跟踪了用户的"真实"IP,如果他有一个代理发送真实IP的标头...是否有更好的解决方案,甚至更多的标头?

由于此函数在脚本中经常使用,因此它必须非常快,并且它似乎不在那个星座中:/

我提出了一些建议,但无法实现:

  • 将标题放在顺序中,最常用的是"在野外",使函数快速完成
  • 使IP的pre_match检测更快

===

function get_real_ip()
{
  $proxy_headers = array(
                          'CLIENT_IP', 
                          'FORWARDED', 
                          'FORWARDED_FOR', 
                          'FORWARDED_FOR_IP', 
                          'HTTP_CLIENT_IP', 
                          'HTTP_FORWARDED', 
                          'HTTP_FORWARDED_FOR', 
                          'HTTP_FORWARDED_FOR_IP', 
                          'HTTP_PC_REMOTE_ADDR', 
                          'HTTP_PROXY_CONNECTION',
                          'HTTP_VIA', 
                          'HTTP_X_FORWARDED', 
                          'HTTP_X_FORWARDED_FOR', 
                          'HTTP_X_FORWARDED_FOR_IP', 
                          'HTTP_X_IMFORWARDS', 
                          'HTTP_XROXY_CONNECTION', 
                          'VIA', 
                          'X_FORWARDED', 
                          'X_FORWARDED_FOR'
                         );

  foreach($proxy_headers as $proxy_header)
  {
    if(isset($_SERVER[$proxy_header]) && preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $_SERVER[$proxy_header])) /* HEADER ist gesetzt und dies ist eine gültige IP */
    {
        return $_SERVER[$proxy_header];
    }
    else if(stristr(',', $_SERVER[$proxy_header]) !== FALSE) /* Behandle mehrere IPs in einer Anfrage(z.B.: X-Forwarded-For: client1, proxy1, proxy2) */
    {
      $proxy_header_temp = trim(array_shift(explode(',', $_SERVER[$proxy_header]))); /* Teile in …
Run Code Online (Sandbox Code Playgroud)

php proxy detection

7
推荐指数
1
解决办法
1万
查看次数

如何检测服务器/脚本是否通过cURL/file_get_contents()访问其站点?(不包括用户代理和IP地址)

我遇到一个问题,用户在通过脚本访问图像时遇到困难(使用cURL/ file_get_contents()):

如何使用PHP从URL保存图像?

使用file_get_contents()请求时,图像链接似乎返回403错误.但是在cURL中,返回了更详细的错误:

您被拒绝访问系统.如果您真的想要访问,请关闭引擎或Surf Proxy,假IP.代理或不接受任何Web工具入侵防御系统.

Binh Minh在线数据服务@ 2008 - 2012

在我自己摆弄cURL请求后,我也无法访问相同的图像.我尝试将用户代理更改为我可以成功访问映像的精确浏览器用户代理.我也尝试过我的个人本地服务器上的脚本,它显然使用与我的浏览器相同的IP地址......据我所知,用户代理和IP地址都不合适.

如何有人检测到执行请求的脚本?

顺便说一下,这不是什么疯狂的事情.我只是好奇的xD

php curl file-get-contents

0
推荐指数
1
解决办法
2214
查看次数

标签 统计

php ×2

curl ×1

detection ×1

file-get-contents ×1

proxy ×1