curl 构造post 提交投票程序

本文介绍了一个使用PHP编写的自动化投票脚本,该脚本能生成随机的姓名、QQ号及电话号码,并通过模拟不同的浏览器环境及IP地址进行批量投票。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Administrator
 * Date: 13-12-19
 * Time: 下午12:39
 * To change this template use File | Settings | File Templates.
 */
header("content-type: text/html; charset=utf-8");
$qqArr=range(0,9);
$nameArr=range('a','z');
$phoneArr=range(0,9);
$name=array_reduce($nameArr,'createName');
$qq=array_reduce($qqArr,'createQQ');
$phone=array_reduce($phoneArr,'createPhone');
$postData=array(
    'PjtID'=>5408237,
    'result'=>0,
    'sbj_5525848'=>array(403247),
    'sbj_5525849'=>array($name), //姓名
    'sbj_5525850'=>array($qq), //qq号码
    'sbj_5525851'=>array($phone), //手机号码
    'tid'=>987,
    'city'=>19
);
/**
 * @param $key
 * @param $value
 * @return string
 */
function createName($key,$value){
    $str=$key.$value;
    $shuffle=str_shuffle($str);
    return  substr($shuffle,0,6);
}
/**
 * @param $key
 * @param $value
 * @return string
 */
function createQQ($key,$value){
    $str=$key.$value;
    $shuffle=str_shuffle($str);
    return substr($shuffle,0,9);
}
/**
 * @param $key
 * @param $value
 * @return string
 */
function createPhone($key,$value){
    $str=$key.$value;
    $shuffle=str_shuffle($str);
    $arr=array('135','138','158','151','152','133');
    $key=array_rand($arr);
    return $arr[$key].substr($shuffle,0,8);
}


/**
 * 伪造浏览器信息
 */
$useragent = array(
    'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)',
    'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2',
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) ',
    'Mozilla/4.0 (compatible; MSIE 5.0; Windows NT) ',
    'Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1',
    'Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3',
    'Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12',
    'Opera/9.27 (Windows NT 5.2; U; zh-cn)',
    'Opera/8.0 (Macintosh; PPC Mac OS X; U; en)',
    'Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0',
    'Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13',
    'Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3',
    'Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13',
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6'
);
/**
 * @param $url
 * @param $postfield
 * @param string $referer
 * @param string $cookie
 * @param $ip
 * @return mixed
 */
function curlrequest($url, $postfield,$referer='',$cookie='',$ip,$useragent) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1); //设置为post提交
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfield);// 伪造post 数据
    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    curl_setopt($ch, CURLOPT_USERAGENT,$useragent); //伪造浏览器信息
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.$ip, 'CLIENT-IP:'.$ip)); //构造IP
    curl_setopt($ch, CURLOPT_REFERER, $referer); //构造来路
    $data = curl_exec($ch); //运行curl
    curl_close($ch);
    return $data;
}


$url='http://input.vote.qq.com/survey.php';
$ref='http://cd.qq.com/zt2013/2013jplcgjpx/index.htm';
$cookies=array_reduce($nameArr,'createName');//构造你的cookies
$ip= mt_rand(100, 244).'.'.mt_rand(100, 244).'.'.mt_rand(100, 244).'.'.mt_rand(100, 244);
$postfield = http_build_query($postData);
$key=array_rand($useragent);
$ugent=$useragent[$key];
$result = curlrequest($url, $postfield,$ref,$cookies,$ip,$ugent);
$str=iconv('gb2312','utf-8',$result);
$needle='alert("提交成功,谢谢参与!");';
$call=strstr($str,$needle);
if($call){
    $msg='当前投票的ip是:'.$ip."<br />";
    $msg.= '当前投票的名称是:'.$name."<br />";
    $msg.='当前投票的qq是:'.$qq."<br />";
    $msg.='当前投票的qq是:'.$phone."<br />";
    $msg.='当前投票构造的post表单是:'.$postfield."<br />";
    $msg.='当前伪造的浏览器是:'.$ugent."<br />";
    setcookie('msg',$msg,time()+5);
    echo '<script>window.location.href="http://127.0.0.1/index.php"</script>';
}else{
   echo '<script>window.location.href="http://127.0.0.1/index.php"</script>';
}













要使用cURL构造POST请求,您可以按照以下步骤进行操作: 1. 首先,使用curl_init()函数初始化一个cURL会话,该函数的可选参数表示一个URL地址。 2. 使用curl_setopt()函数设置您需要抓取的URL。您可以使用CURLOPT_URL选项,并将其值设置为您要发送POST请求的URL地址。 3. 使用curl_setopt()函数设置头信息。一般情况下,您可以将CURLOPT_HEADER选项设置为0,表示不包含头信息。 4. 如果您需要发送POST数据,您可以使用curl_setopt()函数设置CURLOPT_POST选项为1,表示您将使用POST方法发送请求。 5. 使用curl_setopt()函数设置CURLOPT_POSTFIELDS选项,并将其值设置为您要发送的POST数据。例如,您可以使用数组或字符串来表示POST数据。 6. 可选地,您可以使用curl_setopt()函数设置其他选项,如CURLOPT_RETURNTRANSFER以获取请求的返回结果。 7. 最后,使用curl_exec()函数执行cURL会话并获取返回的结果。 下面是一个示例代码: ``` $url = "https://example.com/api"; $data = array( "key1" => "value1", "key2" => "value2" ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); echo $response; ``` 这个代码示例将发送一个POST请求到"https://example.com/api",并使用$key1和$key2作为参数发送数据。您可以根据您的实际需求修改URL和POST数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [在php中使用CURL构造POST请求](https://blog.youkuaiyun.com/weixin_42355215/article/details/116145790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值