1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| $token = ''; $antigate_key = ''; $online = api('account.setOnline', 'access_token='.$token); if (isset($online["error"]["captcha_img"])) { $img_captcha = $online["error"]["captcha_img"]; $captcha_sid = $online["error"]["captcha_sid"]; $antigate_response = antigate($antigate_key, $img_captcha); $online = api('status.set', 'access_token='.$token.'&captcha_sid='.$captcha_sid.'&captcha_key='.$antigate_response); }
function api($method, $param) { $getApi = file_get_contents('https://api.vk.com/method/'.$method.'?'.$param); return json_decode($getApi, true); }
function antigate($key, $captcha) { $captcha_path = 'captcha.jpg'; file_put_contents($captcha_path, file_get_contents( $captcha ) ); $postdata = array( 'method' => 'post', 'is_russian' => '1', 'key' => $key, 'file' => '@captcha.jpg', ); while (true) { $getId = curler('http://antigate.com/in.php', null, $postdata); if (strstr($getId, 'ERROR')) { $res = false; break; } else { $captchaId = str_replace('OK|', '', $getId); sleep(2); while (true) { $getText = curler('http://antigate.com/res.php?key='.$key.'&action=get&id='.$captchaId); if (strstr('CAPCHA_NOT_READY', $getText)) { continue; } elseif ($res = str_replace('OK|', '', $getText)) { break; } } break; } } unlink($captcha_path); return $res; }
function curler($url, $cookie = null, $post = null) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3'); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); if (isset($cookie)) { curl_setopt($ch, CURLOPT_COOKIE, $cookie); } if (isset($post)) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } $response = curl_exec($ch); curl_close($ch); return $response; }
|