Cet article présente principalement la méthode d'utilisation de curl pour simuler l'accès IP et source en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Pour les sites Web dont les adresses IP et les sources sont restreintes, ils ne sont pas accessibles en utilisant les méthodes d'accès normales. Cet article présentera une méthode pour utiliser la classe curl de PHP pour simuler l'adresse IP et la source, et accéder à des sites Web avec une adresse IP et une source restreintes.
1. Définir des restrictions de page pour l'accès IP et à la source
server.php
<?php $client_ip = getip(); $referer = getreferer(); $allow_ip = '192.168.1.100'; $allow_referer = 'http://www.jb51.net'; if($client_ip==$allow_ip && strpos($referer, $allow_referer)===0){ echo 'allow access'; }else{ echo 'deny access'; } // 获取访问者ip function getip(){ if(!empty($_SERVER['HTTP_CLIENT_IP'])){ $cip = $_SERVER['HTTP_CLIENT_IP']; }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ $cip = $_SERVER['HTTP_X_FORWARDED_FOR']; }elseif(!empty($_SERVER['REMOTE_ADDR'])){ $cip = $_SERVER['REMOTE_ADDR']; }else{ $cip = ''; } return $cip; } // 获取访问者来源 function getreferer(){ if(isset($_SERVER['HTTP_REFERER'])){ return $_SERVER['HTTP_REFERER']; } return ''; } ?>
2. Utilisez curl pour accéder normalement
<?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 = 'http://www.example.com/server.php'; $response = doCurl($url); echo $response; ?>
Retourrefuser l'accès
3. Utilisez curl pour simuler l'adresse IP et la source d'accès <🎜. >
Source simulée
curl_setopt($ch, CURLOPT_REFERER, 'source');IP simulée
curl_setopt($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP : ip simulée','X-FORWARDED-FOR : ip simulée'));Le le code complet est le suivant :
<?php function doCurl($url, $data=array(), $header=array(), $referer='', $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 = 'http://www.example.com/server.php'; $data = array(); // 设置IP $header = array( 'CLIENT-IP: 192.168.1.100', 'X-FORWARDED-FOR: 192.168.1.100' ); // 设置来源 $referer = 'http://www.jb51.net/'; $response = doCurl($url, $data, $header, $referer, 5); echo $response; ?>
autoriser l'accès
Ce qui précède C'est tout le contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.PHPBasic knowledge review_php basics
PHPAnalyser correctement les compétences de chaîne UTF-8 base de l'application_php
php pour implémenter le téléchargement d'images et couper les compétences de fonctions_php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!