Maison > développement back-end > tutoriel php > Comment construire un accès IP aléatoire en php

Comment construire un accès IP aléatoire en php

王林
Libérer: 2023-04-08 11:56:01
avant
2265 Les gens l'ont consulté

Comment construire un accès IP aléatoire en php

Nous savons que lors de la demande d'un site, l'en-tête http contiendra certaines informations IP. En falsifiant ces informations, nous pouvons créer l'effet de différentes demandes d'accès IP.

Nous définissons les en-têtes CLIENT-IP et X-FORWARDED-FOR sur l'adresse IP que nous voulons falsifier, et le serveur obtiendra l'adresse IP que nous avons spécifiée.

X-Forwarded-For est un en-tête d'extension. Le protocole HTTP/1.1 (RFC 2616) ne le définit pas. Il a été introduit pour la première fois par Squid, un logiciel proxy de mise en cache, pour représenter la véritable adresse IP du demandeur HTTP. Il est désormais devenu un standard de facto et est utilisé par les principaux HTTP. proxys, les services de transfert tels que l'équilibrage de charge sont largement utilisés et sont écrits dans la norme RFC 7239 (Forwarded HTTP Extension).

(Partage vidéo d'apprentissage associé : Tutoriel vidéo php)

Dans le cas d'une communication bipartite TCP/IP normale, l'adresse IP source ne peut pas être falsifiée, c'est-à-dire pour dire, dans le protocole TCP/IP, l'adresse IP source du paquet de données peut être falsifiée, mais cela empêchera le paquet de données envoyé de revenir, rendant la communication normale impossible. C'est comme lorsque nous écrivons une lettre à l'autre partie, si nous écrivons la mauvaise adresse de l'expéditeur et que le destinataire répond en fonction de l'adresse de l'expéditeur sur l'enveloppe, l'expéditeur d'origine ne pourra pas recevoir la réponse.

Certaines attaques DDoS, comme SYN Flood, profitent de cette faille de TCP/ip pour mener à bien l'attaque.

PHP construit un exemple d'accès IP aléatoire :

<?php
function curl($url,$ifpost = 0, $datafields = &#39;&#39;, $cookiefile = &#39;&#39;, $v = false){
$ip_long = array(
            array(&#39;607649792&#39;, &#39;608174079&#39;), //36.56.0.0-36.63.255.255
            array(&#39;1038614528&#39;, &#39;1039007743&#39;), //61.232.0.0-61.237.255.255
            array(&#39;1783627776&#39;, &#39;1784676351&#39;), //106.80.0.0-106.95.255.255
            array(&#39;2035023872&#39;, &#39;2035154943&#39;), //121.76.0.0-121.77.255.255
            array(&#39;2078801920&#39;, &#39;2079064063&#39;), //123.232.0.0-123.235.255.255
            array(&#39;-1950089216&#39;, &#39;-1948778497&#39;), //139.196.0.0-139.215.255.255
            array(&#39;-1425539072&#39;, &#39;-1425014785&#39;), //171.8.0.0-171.15.255.255
            array(&#39;-1236271104&#39;, &#39;-1235419137&#39;), //182.80.0.0-182.92.255.255
            array(&#39;-770113536&#39;, &#39;-768606209&#39;), //210.25.0.0-210.47.255.255
            array(&#39;-569376768&#39;, &#39;-564133889&#39;), //222.16.0.0-222.95.255.255
    );
    $rand_key = mt_rand(0, 9);
    $ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
$header = array("Connection: Keep-Alive","Accept: text/html, application/xhtml+xml, */*", "Pragma: no-cache", "Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3","User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",&#39;CLIENT-IP:&#39;.$ip,&#39;X-FORWARDED-FOR:&#39;.$ip); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, $v); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
$ifpost && curl_setopt($ch, CURLOPT_POST, $ifpost); 
$ifpost && curl_setopt($ch, CURLOPT_POSTFIELDS, $datafields); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$cookiefile && curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile); 
$cookiefile && curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile); 
curl_setopt($ch,CURLOPT_TIMEOUT,30); //允许执行的最长秒数
$ok = curl_exec($ch); 
curl_close($ch); 
unset($ch);
return $ok;
}
print_r(curl("URL"));
?>
Copier après la connexion

Tutoriels d'articles connexes recommandés : tutoriel 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!

Étiquettes associées:
source:cnblogs.com
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