发新话题
打印

[转载]使用socket代替fopen直接读取的PHP函数

[转载]使用socket代替fopen直接读取的PHP函数

信息来源:网络
可以伪装成本站来源和XP SP2的客户端,从而躲过一些站点的检查
复制内容到剪贴板
代码:
function get($url)
{
$url = eregi_replace('^http://', '', $url);
$temp = explode('/', $url);
$host = array_shift($temp);
$path = '/'.implode('/', $temp);
$temp = explode(':', $host);
$host = $temp[0];
$port = isset($temp[1]) ? $temp[1] : 80;

$fp = @fsockopen($host, $port, &$errno, &$errstr, 30);
if ($fp)
{
@fputs($fp, "GET $path HTTP/1.1\r\n");
@fputs($fp, "Host: $host\r\n");
@fputs($fp, "Accept: */*\r\n");
@fputs($fp, "Referer: [url]http://$host/[/url]\r\n");
@fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n");
@fputs($fp, "Connection: Close\r\n\r\n");
}

$Content = '';
while ($str = @fread($fp, 4096))
$Content .= $str;
@fclose($fp);

return $Content;
}
曾因酒醉鞭名马 生怕情多累美人

TOP

补充一点
$pos=strpos($Content,"\r\n\r\n");
$text=substr($Content,$pos+4);
echo $text;
曾因酒醉鞭名马 生怕情多累美人

TOP

童给我的代码如下发现有错误
复制内容到剪贴板
代码:
<?php
ob_start();

$host=$_GET[&#39;host&#39;];
$port=$_GET[&#39;port&#39;];
$path=$_GET[&#39;path&#39;];
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if ($fp)
{
@fputs($fp, "GET $path HTTP/1.1\r\n");
@fputs($fp, "Host: $host\r\n");
@fputs($fp, "Accept: */*\r\n");
@fputs($fp, "Referer: [url]http://$host/[/url]\r\n");
@fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n");
@fputs($fp, "Connection: Close\r\n\r\n");
}

$Content = &#39;&#39;;
while ($str = fread($fp, 4096))
$Content .= $str;
@fclose($fp);
$pos=strpos($Content,"\r\n\r\n");
$head=substr($Content,0,$pos);
$text=substr($Content,$pos+4);
header($head);
echo $text;
?>
错误出在倒数第三行。修改以后,完整的如下<?php
ob_start();

$host=$_GET[&#39;host&#39;];
$port=$_GET[&#39;port&#39;];
$path=$_GET[&#39;path&#39;];
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if ($fp)
{
@fputs($fp, "GET $path HTTP/1.1\r\n");
@fputs($fp, "Host: $host\r\n");
@fputs($fp, "Accept: */*\r\n");
@fputs($fp, "Referer: http://$host/\r\n");
@fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n");
@fputs($fp, "Connection: Close\r\n\r\n");
}

$Content = &#39;&#39;;
while ($str = fread($fp, 4096))
$Content .= $str;
@fclose($fp);
$pos=strpos($Content,"\r\n\r\n");
$text=substr($Content,$pos+4);
echo $text;
?>
曾因酒醉鞭名马 生怕情多累美人

TOP

发新话题