> 백엔드 개발 > PHP 문제 > PHP에서 다른 IP 액세스를 시뮬레이트하는 방법

PHP에서 다른 IP 액세스를 시뮬레이트하는 방법

藏色散人
풀어 주다: 2023-03-17 12:52:01
원래의
2277명이 탐색했습니다.

PHP에서 다양한 IP 액세스를 시뮬레이션하는 방법: 1. IP 및 소스 액세스를 제한하도록 페이지를 설정합니다. 2. 일반 액세스를 위해 컬을 사용합니다. 3. "curl_setopt($ch와 같은 코드)를 사용하여 IP 및 소스 액세스를 시뮬레이션합니다. , CURLOPT_HTTPHEADER, 배열('CLIENT-IP: ip','X-FORWARDED-FOR: ip'));".

PHP에서 다른 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 = &#39;192.168.1.100&#39;;
$allow_referer = &#39;https://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. 정상적으로 액세스하려면 컬을 사용하세요

<?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;
?>
로그인 후 복사

액세스를 거부하려면 반환하세요

3. 컬을 사용하여 액세스하려면 IP 및 소스를 시뮬레이션하세요

. 소스 시뮬레이션

curl_setopt($ch, CURLOPT_REFERER, &#39;来源&#39;);
로그인 후 복사

시뮬레이션된 IP

curl_setopt($ch, CURLOPT_HTTPHEADER, array(&#39;CLIENT-IP: 模拟ip&#39;,&#39;X-FORWARDED-FOR: 模拟ip&#39;));
로그인 후 복사

의 전체 코드는 다음과 같습니다.

<?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;https://www.jb51.net/&#39;;
 
$response = doCurl($url, $data, $header, $referer, 5);
 
echo $response;
?>
로그인 후 복사

액세스 허용으로 돌아가기

권장 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 다른 IP 액세스를 시뮬레이트하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿