Maison > Article > développement back-end > Comment simuler différents accès IP en php
Comment simuler différents accès IP en PHP : 1. Définissez la page pour restreindre l'accès IP et source ; 2. Utilisez curl pour un accès normal ; 3. Utilisez curl pour simuler l'accès IP et source, un code tel que "curl_setopt($ch , CURLOPT_HTTPHEADER, tableau( 'CLIENT-IP : ip','X-FORWARDED-FOR : ip'));".
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.
Comment simuler différents accès IP en php
php Comment utiliser curl pour simuler l'IP et la source d'accès
Pour les sites Web avec une adresse IP et une source restreintes, il est inaccessible en utilisant les méthodes d'accès normales. Cet article présentera une méthode permettant d'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éfinissez la page pour restreindre l'accès à l'IP et à la source
server.php
<?php $client_ip = getip(); $referer = getreferer(); $allow_ip = '192.168.1.100'; $allow_referer = 'https://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; ?>
Retour pour refuser l'accès
3. Simuler la source
curl_setopt($ch, CURLOPT_REFERER, '来源');
Le code complet de l'ip simulé
curl_setopt($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP: 模拟ip','X-FORWARDED-FOR: 模拟ip'));
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 = 'https://www.jb51.net/'; $response = doCurl($url, $data, $header, $referer, 5); echo $response; ?>
Retourner pour autoriser l'accès
Apprentissage recommandé : "
Tutoriel vidéo PHPCe 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!