如何用PHP实现伪造IP呢,这里有一个简单的例子。

<?php
$address = 'http://要访问的地址';
$myip    = '您的IP地址';

ob_start();
$mtime     = explode(' ', microtime());
$starttime = $mtime[1] + $mtime[0];

$onoff = (function_exists('ini_get')) ? ini_get('register_globals') : get_cfg_var('register_globals');

if ($onoff != 1) {
    @extract($_POST, EXTR_SKIP);
    @extract($_GET, EXTR_SKIP);
}

$self      = $_SERVER['PHP_SELF'];
$myaddress = 'http://' . $_SERVER['HTTP_HOST'] . $self;

$comm = '';

if (isset($url) && $url) {
    $url = str_replace($address, '', $url);
}

$pcomm = '';
foreach ($_POST as $key => $val) {
    if ($pcomm == '') {
        $pcomm .= $key . '' . urlencode($val);
    } else {
        $pcomm .= $pcomm . '&' . $key . '=' . urlencode($val);
    }
}

foreach ($_GET as $key => $val) {
    if ($key != 'url') {
        if ($comm == '') {
            $comm = $key . '=' . rawurlencode($val);
        } else {
            $comm = $comm . '&' . $key . '=' . rawurlencode($val);
        }
    }
}

if (!$url) {
    $url = $address;
} else {
    $url = $address . $url;
    if ($comm) {
        if (strstr($url, '?')) {
            $url = $url . '&' . $comm;
        } else {
            $url = $url . '?' . $comm;
        }
    }
}

if ($url) {
    $cookies = '';
    if (count($_COOKIE)) {
        foreach ($_COOKIE as $cookie_name => $cookie_var) {
            $cookies .= $cookies != '' ? '; ' . $cookie_name . '=' . $cookie_var : $cookie_name . '=' . $cookie_var;
        }
    }
    
    $temp             = @parse_url($url);
    $temp['port']     = isset($temp['port']) ? $temp['port'] : 80;
    $temp['path']     = isset($temp['path']) ? $temp['path'] : '/';
    $temp['file']     = substr($temp['path'], strrpos($temp['path'], '/') + 1);
    $temp['dir']      = substr($temp['path'], 0, strrpos($temp['path'], '/'));
    $temp['base']     = $temp['scheme'] . '://' . $temp['host'] . ($temp['port'] != 80 ? ':' . $temp['port'] : '') . $temp['dir'];
    $temp['prev_dir'] = $temp['path'] != '/' ? substr($temp['base'], 0, strrpos($temp['base'], '/') + 1) : $temp['base'] . '/';
    $fp               = @fsockopen($temp['host'], $temp['port'], $errno, $errstr, 30);
    if ($fp) {
        if ($_SERVER['REQUEST_METHOD'] != 'POST') {
            @fputs($fp, "GET $temp[path]?$temp[query] HTTP/1.1\r\n");
        } else {
            @fputs($fp, "POST $temp[path]?$temp[query] HTTP/1.1\r\n");
        }
        @fputs($fp, "Host: $temp[host]\r\n");
        @fputs($fp, "Accept: */*\r\n");
        @fputs($fp, "Referer: [url]http://$temp[url][host]/\r\n");
        @fputs($fp, "Cookie: $cookies\r\n");
        @fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n");
        @fputs($fp, "via: 1.1 JEJE1:80 (squid/2.5.STABLE4-NT-CVS)\r\n");
        @fputs($fp, "X-Forwarded-For: $myip\r\n");
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            @fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
            @fputs($fp, "Content-Length: " . strlen($pcomm) . "\r\n\r\n");
            @fputs($fp, $pcomm);
        }
        @fputs($fp, "Connection: Close\r\n\r\n");
        
        while ($str = @fread($fp, 4096)) {
            if ($str != "\r\n" && preg_match_all("#set-cookie:([^\r\n]*)#i", $str, $matches)) {
                foreach ($matches[1] as $cookie_info) {
                    preg_match('#^\s*([^=;,\s]*)=?([^;,\s]*)#', $cookie_info, $match) && list(, $name, $value) = $match;
                    preg_match('#;\s*expires\s*=([^;]*)#i', $cookie_info, $match) && list(, $expires) = $match;
                    $expires = isset($expires) ? strtotime($expires) : false;
                    $expires = (!is_numeric($expires) || time() > $expires) ? false : $expires;
                    setcookie($name, $value, $expires);
                }
                $str = str_replace($matches[0], '', $str);
            }
            
            $Content .= $str;
        }
        @fclose($fp);
        if (strpos($Content, 'Content-Type: text/html')) {
            $Content = substr($Content, strpos($Content, 'Content-Type: text/html') + 33);
        } else {
            $Content = substr($Content, strpos($Content, chr(0x0d) . chr(0x0a) . chr(0x0d) . chr(0x0a)) + 4);
        }
        

        
        echo $Content;
    }
}

?>