Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Methode, Curl zu verwenden, um IP und Quelle für den Zugriff zu simulieren

PHP implementiert die Methode, Curl zu verwenden, um IP und Quelle für den Zugriff zu simulieren

墨辰丷
墨辰丷Original
2018-05-23 11:21:104194Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von Curl zum Simulieren von IP- und Quellzugriffen in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Websites mit eingeschränkten IP-Adressen und Quellen können mit normalen Zugriffsmethoden nicht aufgerufen werden. In diesem Artikel wird eine Methode vorgestellt, mit der die Curl-Klasse von PHP verwendet werden kann, um IP und Quelle zu simulieren und auf Websites mit eingeschränkter IP und Quelle zuzugreifen.

1. Legen Sie Seitenbeschränkungen für IP und Quellzugriff fest

server.php

<?php

$client_ip = getip();
$referer = getreferer();

$allow_ip = &#39;192.168.1.100&#39;;
$allow_referer = &#39;http://www.jb51.net&#39;;

if($client_ip==$allow_ip && strpos($referer, $allow_referer)===0){
  echo &#39;allow access&#39;;
}else{
  echo &#39;deny access&#39;;
}


// 获取访问者ip
function 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;;
}

?>

2. Verwenden Sie Curl, um normal zuzugreifen

<?php
function 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.example.com/server.php&#39;;
$response = doCurl($url);

echo $response;
?>

ZurückZugriff verweigern

3. Verwenden Sie Curl, um IP und Quelle für den Zugriff zu simulieren

Simulierte Quelle

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

Simulierte IP

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

Der vollständige Code ist wie folgt folgt:

<?php
function 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.jb51.net/&#39;;

$response = doCurl($url, $data, $header, $referer, 5);

echo $response;
?>

ZurückZugriff erlauben

Das Obige ist der gesamte Inhalt davon Artikel, ich hoffe, dass er für die Lernhilfe aller nützlich sein wird.


Verwandte Empfehlungen:

PHPGrundwissensüberprüfung_php-Grundlagen

PHPUTF-8-String-Kenntnisse korrekt analysieren, application_php-Grundlagen

PHP-Funktionen zum Hochladen von Bildern und Ausschneiden realisieren_php-Kenntnisse

Das obige ist der detaillierte Inhalt vonPHP implementiert die Methode, Curl zu verwenden, um IP und Quelle für den Zugriff zu simulieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn