coding code
change world

简析Netscape格式的cookie文件|PHP模拟多用户批量登陆

  • #代表注释
  • 注释与正文中间有一个空行分隔
  • 域-创建并且可以读取变量的域。(如:.google.com)
  • flag-一个TRUE / FALSE值,指示给定域内的所有计算机是否可以访问该变量。该值由浏览器自动设置,具体取决于您为域设置的值。
  • path-变量在其域内有效的路径。
  • 安全-一个TRUE / FALSE值,指示是否需要与域的安全连接才能访问该变量。
  • expiration-变量到期的UNIX时间。UNIX时间定义为自格林尼治标准时间1970年1月1日00:00:00起经过的秒数。
  • name-变量的名称。
  • value-变量的值。
01 | # Netscape HTTP Cookie File
02 | # http://curl.haxx.se/rfc/cookie_spec.html
03 | # This file was generated by libcurl! Edit at your own risk.
04 | 
05 | .google.com    TRUE    /   FALSE   1305843382  cookiename  the value
06 | .yahoo.com TRUE    /   FALSE   1305843382  another_cookie  it's value
07 |

PHP 使用cookie 文件多用户模拟登陆

这里假设已经拿到n个用户的cookie,接下来用以下代码就可实现多用户模拟登陆

function request($url, $header, $proxy_ip = [])
{
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookie.tmp');	// 发送cookie文件
	curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie.tmp');	// 写入cookie到文件
	$response = curl_exec($ch);
	// 分离请求头和body
	$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
	$header = substr($response, 0, $headerSize);

	$body = substr($response, $headerSize);
	curl_close($ch);
	return [ 'header' => $header, 'resp' => $body ];
}

$header = [
	'authority: h5api.m.tmall.com',
	'accept: */*',
	'sec-fetch-site: same-site',
	'sec-fetch-mode: no-cors',
	'sec-fetch-dest: script',
	'referer: https://www.tmall.com/',
	'accept-language: zh-CN,zh;q=0.9,en;q=0.8',
	'user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'
];
request('https://www.tmall.com/', $header);

赞(0) 打赏
未经允许不得转载:卢云华个人日志 » 简析Netscape格式的cookie文件|PHP模拟多用户批量登陆
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏