Home >Backend Development >PHP Tutorial >How to construct random ip access in php

How to construct random ip access in php

王林
王林forward
2020-01-31 21:21:402262browse

How to construct random ip access in php

We know that when requesting a site, the http header will carry some IP information. By forging this information, we can form the effect of different IP access requests.

We set the header CLIENT-IP and X-FORWARDED-FOR to the IP we want to forge, and the server will get the IP we specified.

X-Forwarded-For is an extension header. The HTTP/1.1 (RFC 2616) protocol does not define it. It was first introduced by Squid, a caching proxy software, to represent the real IP of the HTTP requester. Now it has become a de facto standard and is used by major HTTP proxies, Forwarding services such as load balancing are widely used and are written into the RFC 7239 (Forwarded HTTP Extension) standard.

(Related learning video sharing: php video tutorial)

In the case of normal TCP/IP two-party communication, it is impossible to forge the source IP, that is to say , In the TCP/IP protocol, the source IP of the data packet can be forged, but this will make the sent data packet never return, making normal communication impossible. This is just like when we write a letter to the other party, if we write the wrong sender's address, and the recipient replies according to the sender's address on the envelope, the original sender will not be able to receive the reply.

Some DDoS attacks, such as SYN flood, take advantage of this flaw in TCP/ip to implement the attack.

php constructs random ip access example:

<?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"));
?>

Recommended related article tutorials: php tutorial

The above is the detailed content of How to construct random ip access in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete