Detailed explanation of using curl to simulate IP instances

零下一度
Release: 2023-03-14 06:02:01
Original
1798 people have browsed it

For websites with restricted IP addresses and sources, normal collection methods will not work. This article will introduce a method to use PHP's curl class to simulate IPs and sources, and collect websites with restricted IPs and sources.

1. Set page restrictions for IP and source access

server.php

##
<?php 
$client_ip = getip();$referer = getreferer(); 
$allow_ip = &#39;192.168.1.100&#39;;$allow_referer = &#39;http://www.uxuew.cn&#39;; 
if($client_ip==$allow_ip && strpos($referer, $allow_referer)===0){  echo &#39;allow access&#39;;
}else{  echo &#39;deny access&#39;;
} 
 
// 获取访问者ipfunction getip(){  if(!empty($_SERVER[&#39;HTTP_CLIENT_IP&#39;])){$cip = $_SERVER[&#39;HTTP_CLIENT_IP&#39;];
  }elseif(!empty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])){$cip = $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;];
  }elseif(!empty($_SERVER[&#39;REMOTE_ADDR&#39;])){$cip = $_SERVER[&#39;REMOTE_ADDR&#39;];
  }else{$cip = &#39;&#39;;
  }  return $cip;
} 
// 获取访问者来源function getreferer(){  if(isset($_SERVER[&#39;HTTP_REFERER&#39;])){return $_SERVER[&#39;HTTP_REFERER&#39;];
  }  return &#39;&#39;;
} 
?>
Copy after login

2. Use curl for normal access

<?phpfunction doCurl($url, $data=array(), $header=array(), $timeout=30){ 
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
  $response = curl_exec($ch); 
  if($error=curl_error($ch)){die($error);
  }
 
  curl_close($ch); 
  return $response;
 
} 
// 调用$url = &#39;http://www.uxuew.cn/server.php&#39;;$response = doCurl($url); 
echo $response;?>
Copy after login

3. Use curl to simulate ip and source for access

Simulated source

curl_setopt($ch, CURLOPT_REFERER, 'source');

Simulated ip

curl_setopt($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP: simulated ip','X-FORWARDED-FOR: simulated ip'));

The complete code is as follows:

<?phpfunction doCurl($url, $data=array(), $header=array(), $referer=&#39;&#39;, $timeout=30){ 
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
  // 模拟来源
  curl_setopt($ch, CURLOPT_REFERER, $referer); 
  $response = curl_exec($ch); 
  if($error=curl_error($ch)){die($error);
  }
 
  curl_close($ch); 
  return $response;
 
} 
// 调用$url = &#39;http://www.example.com/server.php&#39;;$data = array(); 
// 设置IP$header = array(  &#39;CLIENT-IP: 192.168.1.100&#39;,
  &#39;X-FORWARDED-FOR: 192.168.1.100&#39;); 
// 设置来源$referer = &#39;http://www.uxuew.cn/&#39;; 
$response = doCurl($url, $data, $header, $referer, 5); 
echo $response;?>
Copy after login

The above is the detailed content of Detailed explanation of using curl to simulate IP instances. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!