php fsockopen函数发送post,get请求获得网页内容(反防采集)

作者:袖梨 2022-06-24
代码如下 复制代码
$post =1;
$url = parse_url($url);
$host ='https://www.111cn.net';
$path ='/';
$query ='?action=111com.net';
$port =80;

if($post) {
$out = "post $path http/1.0 ";
$out .= "accept: */* ";
//$out .= "referer: $boardurl ";
$out .= "accept-language: zh-cn ";
$out .= "content-type: application/x-www-form-urlencoded ";
$out .= "user-agent: $_server[http_user_agent] ";
$out .= "host: $host ";
$out .= 'content-length: '.strlen($post)." ";
$out .= "connection: close ";
$out .= "cache-control: no-cache ";
$out .= "cookie: $cookie ";
$out .= $post;
} else {
$out = "get $path http/1.0 ";
$out .= "accept: */* ";
//$out .= "referer: $boardurl ";
$out .= "accept-language: zh-cn ";
$out .= "user-agent: $_server[http_user_agent] ";
$out .= "host: $host ";
$out .= "connection: close ";
$out .= "cookie: $cookie ";
}
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
if(!$fp)
{
return '';//note $errstr : $errno
} else {
return '成功访问';
}
/*
fsockopen语法

resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )



启动一个套接字连接到指定的主机的资源。
php支持在互联网领域的目标和unix在所支持的套接字传输列表说明。所支持的传输列表也可以检索使用stream_get_transports()。

该插座预设会被启用,阻塞模式。你可以切换到非阻塞模式使用stream_set_blocking()。

如果上面实例看不懂,就来看个简的吧


*/

代码如下 复制代码
$fp = fsockopen("www.111com.net", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)
";
} else {
$out = "get / http/1.1 ";
$out .= "host: www.111com.net ";
$out .= "connection: close ";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}

相关文章

精彩推荐