Comment utiliser curl pour simuler l'adresse IP et la source pour un accès via php

jacklove
Libérer: 2023-03-30 22:38:01
original
2342 Les gens l'ont consulté

Les sites Web avec des adresses IP et des sources restreintes 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 l'adresse IP de restriction de la page et l'accès à la source

server.php

<?php$client_ip = getip();$referer = getreferer();$allow_ip = &#39;192.168.1.100&#39;;$allow_referer = &#39;http://www.csdn.net&#39;;if($client_ip==$allow_ip && strpos($referer, $allow_referer)===0){    echo &#39;allow access&#39;;
}else{    echo &#39;deny access&#39;;
}// 获取访问者ipfunction 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;;
}?>
Copier après la connexion

2. Utilisez curl pour accéder normalement

<?phpfunction 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;?>
Copier après la connexion

Retourrefuser l'accès

3. ip et Source pour accéder à

Source fictive

curl_setopt($ch, CURLOPT_REFERER, &#39;来源&#39;);
Copier après la connexion

IP simulée

curl_setopt($ch, CURLOPT_HTTPHEADER, array(&#39;CLIENT-IP: 模拟ip&#39;,&#39;X-FORWARDED-FOR: 模拟ip&#39;));
Copier après la connexion

Complet Le code est le suivant :

<?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.csdn.net/&#39;;$response = doCurl($url, $data, $header, $referer, 5);

echo $response;
?>
Copier après la connexion

Retourautoriser l'accès

Cet article explique les connaissances pertinentes de php en utilisant curl pour simuler l'IP et la source pour l'accès, plus d'informations connexes. Veuillez faire attention au site Web chinois php pour le contenu.

Recommandations associées :

Convertir la méthode de données NULL via MySQL

Concernant les fonctions PHP utilisant un nombre variable de paramètres Contenu

Comment appeler l'API Sina via php pour générer un lien court

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal