PHP에서 다양한 IP 액세스를 시뮬레이션하는 방법: 1. IP 및 소스 액세스를 제한하도록 페이지를 설정합니다. 2. 일반 액세스를 위해 컬을 사용합니다. 3. "curl_setopt($ch와 같은 코드)를 사용하여 IP 및 소스 액세스를 시뮬레이션합니다. , CURLOPT_HTTPHEADER, 배열('CLIENT-IP: ip','X-FORWARDED-FOR: ip'));".
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.
php에서 다양한 IP 액세스를 시뮬레이션하는 방법
php 컬을 사용하여 IP 및 액세스 소스를 시뮬레이션하는 방법
IP 및 소스가 제한된 웹사이트의 경우 일반적인 액세스 방법으로는 액세스할 수 없습니다. 이 기사에서는 PHP의 컬 클래스를 사용하여 IP 및 소스를 시뮬레이션하고 제한된 IP 및 소스를 사용하여 웹 사이트에 액세스하는 방법을 소개합니다.
1. IP 및 소스 액세스를 제한하도록 페이지를 설정하세요
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. 정상적으로 액세스하려면 컬을 사용하세요
<?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; ?>
액세스를 거부하려면 반환하세요
3. 컬을 사용하여 액세스하려면 IP 및 소스를 시뮬레이션하세요
. 소스 시뮬레이션
curl_setopt($ch, CURLOPT_REFERER, '来源');
시뮬레이션된 IP
curl_setopt($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP: 模拟ip','X-FORWARDED-FOR: 模拟ip'));
의 전체 코드는 다음과 같습니다.
<?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; ?>
액세스 허용으로 돌아가기
권장 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP에서 다른 IP 액세스를 시뮬레이트하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!