GeeTest · Demo langsung

Demo GeeTest v3

Tantangan puzzle geser-dan-cocokkan dari GeeTest.

  • Gratis, tanpa pendaftaran
  • Widget asli dari penyedianya
  • Lihat respons verifikasi

Widget GeeTest v3 langsung

Klik bilahnya, lalu geser potongan puzzle ke tempatnya. Verifikasi terjadi segera setelah GeeTest mengembalikan nilai challenge, validate, dan seccode.

Cara Memecahkan GeeTest v3

Kotak di atas adalah versi langsung dari GeeTest v3 tantangan, puzzle geser-untuk-pas. Halaman ini menunjukkan tiga cara mudah memecahkan GeeTest v3 dan mendapatkan tiga nilai yang dikembalikannya, geetest_challenge, geetest_validate dan geetest_seccode: secara otomatis dengan ekstensi browser CapSkip, di dalam kode Anda sendiri dengan SDK CapSkip, atau dengan merutekan layanan captcha yang sudah dipanggil alat Anda ke CapSkip. CapSkip berjalan secara lokal di perangkat Anda, jadi tidak ada biaya per pemecahan dan tidak ada yang keluar dari komputer Anda.

Tanpa perlu kode

Opsi 1: Pecahkan GeeTest v3 dengan ekstensi browser

Cara paling sederhana untuk melewati GeeTest v3 adalah Ekstensi pemecah captcha CapSkip untuk Chrome dan Firefox. Ekstensi ini menemukan celah pada puzzle, menyeret potongannya ke tempatnya dengan gerakan mirip manusia, dan menyerahkan seccode yang valid ke situs, tanpa kode yang perlu ditulis.

1

Instal ekstensi

Tambahkan CapSkip dari Chrome Web Store atau Firefox Add-ons. Ekstensi ini juga berfungsi di Brave, Edge, Opera dan Vivaldi.

2

Jalankan aplikasi CapSkip

Instal dan buka aplikasi desktop CapSkip. Aplikasi ini melakukan pemecahan di perangkat Anda sendiri dan berpasangan dengan ekstensi.

3

Ini memecahkan secara otomatis

Muat ulang halaman ini dan CapSkip akan menggeser potongan puzzle ke celahnya untuk Anda. Ingin tetap memegang kendali? Beralihlah ke mode manual kapan saja.

Untuk pengembang

Opsi 2: Pecahkan GeeTest v3 dengan CapSkip SDK

Membangun otomatisasi, scraper atau bot? Gunakan SDK pemecahan captcha CapSkip untuk memecahkan GeeTest v3 dari Python, Node.js, PHP atau C#. Anda memberikan untuk halaman ini gt, baru challenge dan URL halaman, lalu CapSkip mengembalikan nilai challenge, validate dan seccode hasil pemecahan yang dapat Anda kirim seperti nilai asli.

Captcha ID (gt)
e3a600a044ef0ad51749da5c451adca0
URL Halaman
https://capskip.com/id/captcha-demo/geetest-v3/

Sebelum Anda mulai

CapSkip memecahkan secara lokal. Unduh dan jalankan aplikasi desktop CapSkip dan biarkan tetap terbuka di latar belakang. SDK berkomunikasi dengannya di 127.0.0.1:8080, sehingga tidak ada panggilan cloud dan tidak ada biaya per pemecahan.

Challenge kedaluwarsa

Tidak seperti site key reCAPTCHA, GeeTest v3 memerlukan dua nilai. Nilai gt di atas bersifat statis dan tidak pernah berubah, tetapi challenge bersifat sekali pakai dan mati setelah sekitar satu menit, dan langsung hangus begitu widget memuatnya. Ambil yang baru tepat sebelum setiap pemecahan, dan itulah persis yang dilakukan langkah 2.

1

Instal SDK

Tambahkan klien resmi CapSkip ke proyek Anda.

pip install capskip
npm install capskip
composer require capskip/capskip
dotnet add package CapSkip
2

Dapatkan gt dan challenge yang baru

Halaman ini mendaftarkan challenge GeeTest-nya di sisi server dan mencetak nonce yang dibutuhkannya di dalam blok inline capskipCaptcha objek. Baca itu, lalu minta halaman memberi Anda challenge tersendiri agar challenge yang sedang dipakai widget tetap tidak terganggu.

import json, re, requests

PAGE = "https://capskip.com/id/captcha-demo/geetest-v3/"
AJAX = "https://capskip.com/wp-admin/admin-ajax.php"

session = requests.Session()
html = session.get(PAGE).text

# The page prints its ajax nonce and page id in an inline capskipCaptcha object
cfg = json.loads(re.search(r"capskipCaptcha\s*=\s*(\{.*\});", html).group(1))

# Register a fresh challenge (single use, expires in about a minute)
data = session.post(AJAX, data={
    "action": "capskip_geetest_register",
    "nonce": cfg["nonce"],
    "post_id": cfg["postId"],
}).json()["data"]

gt, challenge = data["gt"], data["challenge"]
print(gt, challenge)
const PAGE = 'https://capskip.com/id/captcha-demo/geetest-v3/';
const AJAX = 'https://capskip.com/wp-admin/admin-ajax.php';

const html = await (await fetch(PAGE)).text();

// The page prints its ajax nonce and page id in an inline capskipCaptcha object
const cfg = JSON.parse(html.match(/capskipCaptcha\s*=\s*(\{.*\});/)[1]);

// Register a fresh challenge (single use, expires in about a minute)
const res = await fetch(AJAX, {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: new URLSearchParams({
    action: 'capskip_geetest_register',
    nonce: cfg.nonce,
    post_id: cfg.postId,
  }),
});

const { gt, challenge } = (await res.json()).data;
console.log(gt, challenge);
<?php
$page = 'https://capskip.com/id/captcha-demo/geetest-v3/';
$ajax = 'https://capskip.com/wp-admin/admin-ajax.php';

$html = file_get_contents($page);

// The page prints its ajax nonce and page id in an inline capskipCaptcha object
preg_match('/capskipCaptcha\s*=\s*(\{.*\});/', $html, $m);
$cfg = json_decode($m[1], true);

// Register a fresh challenge (single use, expires in about a minute)
$res = file_get_contents($ajax, false, stream_context_create([
    'http' => [
        'method'  => 'POST',
        'header'  => 'Content-Type: application/x-www-form-urlencoded',
        'content' => http_build_query([
            'action'  => 'capskip_geetest_register',
            'nonce'   => $cfg['nonce'],
            'post_id' => $cfg['postId'],
        ]),
    ],
]));

$data = json_decode($res, true)['data'];
$gt = $data['gt'];
$challenge = $data['challenge'];
echo $gt, ' ', $challenge;
using System.Text.Json.Nodes;
using System.Text.RegularExpressions;

const string Page = "https://capskip.com/id/captcha-demo/geetest-v3/";
const string Ajax = "https://capskip.com/wp-admin/admin-ajax.php";

var http = new HttpClient();
var html = await http.GetStringAsync(Page);

// The page prints its ajax nonce and page id in an inline capskipCaptcha object
var cfg = JsonNode.Parse(Regex.Match(html, @"capskipCaptcha\s*=\s*(\{.*\});").Groups[1].Value)!;

// Register a fresh challenge (single use, expires in about a minute)
var form = new FormUrlEncodedContent(new Dictionary<string, string> {
    ["action"] = "capskip_geetest_register",
    ["nonce"] = cfg["nonce"]!.ToString(),
    ["post_id"] = cfg["postId"]!.ToString(),
});
var res = await http.PostAsync(Ajax, form);
var data = JsonNode.Parse(await res.Content.ReadAsStringAsync())!["data"]!;

string gt = data["gt"]!.ToString();
string challenge = data["challenge"]!.ToString();
Console.WriteLine($"{gt} {challenge}");

Anda mendapatkan dari halaman ini gt ditambah 32 karakter baru challenge. Pecahkan segera.

3

Pecahkan GeeTest v3 dan dapatkan ketiga nilainya

Teruskan gt, challenge yang baru saja Anda daftarkan dan milik halaman ini url ke geetest(). CapSkip menyeret potongan puzzle ke celahnya dan mengembalikan triplet hasil pemecahan.

from capskip import CapSkip

# Connect to the CapSkip app running on your machine
solver = CapSkip(host="127.0.0.1", port=8080)

# Solve the GeeTest v3 slider on this page
result = solver.geetest(
    gt=gt,
    challenge=challenge,
    url="https://capskip.com/id/captcha-demo/geetest-v3/",
)

print(result["challenge"])   # geetest_challenge
print(result["validate"])    # geetest_validate
print(result["seccode"])     # geetest_seccode
const { CapSkip } = require('capskip');

// Connect to the CapSkip app running on your machine
const solver = new CapSkip({ host: '127.0.0.1', port: 8080 });

// Solve the GeeTest v3 slider on this page
const result = await solver.geetest(
  gt,
  challenge,
  'https://capskip.com/id/captcha-demo/geetest-v3/',
);

console.log(result.challenge); // geetest_challenge
console.log(result.validate);  // geetest_validate
console.log(result.seccode);   // geetest_seccode
<?php
require 'vendor/autoload.php';

use CapSkip\CapSkip;

// Connect to the CapSkip app running on your machine
$solver = new CapSkip(['host' => '127.0.0.1', 'port' => 8080]);

// Solve the GeeTest v3 slider on this page
$result = $solver->geetest(
    $gt,
    $challenge,
    'https://capskip.com/id/captcha-demo/geetest-v3/'
);

echo $result['challenge'];  // geetest_challenge
echo $result['validate'];   // geetest_validate
echo $result['seccode'];    // geetest_seccode
using CapSkip;

// Connect to the CapSkip app running on your machine
var solver = new CapSkipClient(host: "127.0.0.1", port: 8080);

// Solve the GeeTest v3 slider on this page
var result = await solver.GeetestAsync(
    gt,
    challenge,
    "https://capskip.com/id/captcha-demo/geetest-v3/");

Console.WriteLine(result.Challenge);  // geetest_challenge
Console.WriteLine(result.Validate);   // geetest_validate
Console.WriteLine(result.Seccode);    // geetest_seccode

Anda mendapatkan challenge, validate dan seccode, siap dikirim.

4

Gunakan ketiga nilai tersebut

Kirim kembali ketiga nilai itu dengan nama yang dipakai widget itu sendiri. Di halaman ini, itu adalah panggilan admin-ajax yang sama yang Periksa tersebut, yang memverifikasi seccode terhadap GeeTest sebelum berubah menjadi hijau.

// The three values GeeTest returns, exactly as the widget produces them
const payload = {
  geetest_challenge: result.challenge,
  geetest_validate:  result.validate,
  geetest_seccode:   result.seccode,
};

// Send them to whatever endpoint the site verifies with, then submit the form.
// This demo posts challenge, validate and seccode to admin-ajax.php with
// action=capskip_captcha_verify and provider=geetest_v3.
Lanjutan

Menggunakan CapSkip di situs GeeTest v3 lainnya

Untuk memecahkan GeeTest v3 di mana pun, Anda memerlukan tiga hal dari halaman:

  • gt: ID captcha publik, statis per situs. Inilah gt parameter query pada panggilan widget ke api.geetest.com/gettype.php dan get.php.
  • challenge: sebuah nilai sekali pakai yang berasal dari permintaan init atau register milik situs itu sendiri, biasanya berupa respons JSON kecil di sebelah gt. Ulangi permintaan tunggal itu sebelum setiap pemecahan untuk mendapatkan challenge yang baru.
  • URL Halaman: alamat lengkap halaman tersebut.

Server API regional dan proxy

Beberapa situs terikat pada endpoint GeeTest regional seperti api-na.geetest.com. Teruskan sebagai api_server pada HTTP API jika memang demikian. proxy (proxy dan proxytype) juga didukung, yang membantu ketika situs mengikat challenge ke IP Anda.

result = solver.geetest(
    gt="GT_FROM_PAGE",
    challenge="FRESH_CHALLENGE",   # register a new one right before every solve
    url="https://example.com/login",
)

challenge = result["challenge"]   # geetest_challenge
validate = result["validate"]     # geetest_validate
seccode = result["seccode"]       # geetest_seccode
const result = await solver.geetest(
  'GT_FROM_PAGE',
  'FRESH_CHALLENGE',   // register a new one right before every solve
  'https://example.com/login',
);

const { challenge, validate, seccode } = result;
$result = $solver->geetest(
    'GT_FROM_PAGE',
    'FRESH_CHALLENGE',   // register a new one right before every solve
    'https://example.com/login'
);

$challenge = $result['challenge'];  // geetest_challenge
$validate = $result['validate'];    // geetest_validate
$seccode = $result['seccode'];      // geetest_seccode
var result = await solver.GeetestAsync(
    "GT_FROM_PAGE",
    "FRESH_CHALLENGE",   // register a new one right before every solve
    "https://example.com/login");

string challenge = result.Challenge;  // geetest_challenge
string validate = result.Validate;    // geetest_validate
string seccode = result.Seccode;      // geetest_seccode

Jika hasil pemecahan ditolak, penyebab yang biasa adalah challenge kedaluwarsa: token itu sudah dipakai oleh halaman atau dibiarkan tidak terpakai lebih dari satu menit.

Tidak menggunakan Python, Node.js, PHP atau C#? SDK tersebut hanyalah wrapper di atas HTTP API CapSkip (standar in.php / res.php endpoint dengan method=geetest), sehingga Anda dapat memecahkan GeeTest v3 dari bahasa, framework, atau alat apa pun. Lihat Referensi API GeeTest v3.

Tanpa perubahan kode

Opsi 3: Kirim kode layanan solver Anda yang sudah ada ke CapSkip

Sudah memecahkan GeeTest v3 melalui layanan bayar per captcha seperti 2Captcha, Anti-Captcha atau CapMonster? Anda tidak perlu menulis ulang satu baris pun. Aplikasi CapSkip menyertakan emulator layanan yang berbicara dengan API milik layanan-layanan itu secara lokal: pilih layanan yang Anda pakai, klik Tambahkan ke file hosts, dan setiap permintaan yang sudah dikirim bot, scraper atau alat siap pakai Anda ke sana dijawab oleh CapSkip di komputer Anda sendiri, dengan harga tetap alih-alih tagihan per pemecahan.

1

Pilih layanan Anda

Buka aplikasi CapSkip dan pilih layanan yang sudah digunakan oleh kode Anda: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha, SolveCaptcha atau Captchas.io.

2

Tambahkan ke file hosts

Satu klik di aplikasi mengarahkan domain layanan tersebut ke CapSkip, sehingga panggilan yang dibuat alat Anda dijawab di komputer Anda sendiri alih-alih keluar ke API berbayar.

3

Jalankan alat Anda tanpa perubahan

API key yang sama, permintaan yang sama, loop polling yang sama. CapSkip membalas dalam format milik layanan tersebut dan kode Anda mendapatkan nilai challenge, validate dan seccode hasil pemecahan.

Tidak ada yang berubah di bawah ini saat Anda beralih. Ini adalah panggilan yang sama seperti yang dilakukan kode Anda hari ini, hanya saja GeeTest v3 kini dipecahkan secara lokal dan nilai challenge, validate, serta seccode hasil pemecahan dikembalikan oleh CapSkip:

POST https://2captcha.com/in.php
     key=YOUR_EXISTING_API_KEY
     method=geetest
     gt=e3a600a044ef0ad51749da5c451adca0
     challenge=FRESH_CHALLENGE_FROM_THE_PAGE
     pageurl=https://capskip.com/id/captcha-demo/geetest-v3/

GET  https://2captcha.com/res.php?key=YOUR_EXISTING_API_KEY&action=get&id=2122988149
     {"geetest_challenge":"…","geetest_validate":"…","geetest_seccode":"…"}

Pustaka klien bekerja dengan cara yang sama: sebuah objek bergaya Anti-Captcha createTask / getTaskResult pasangan, atau wrapper apa pun yang dibangun di atas salah satu layanan ini, tetap bekerja begitu emulator diaktifkan. Referensi lengkap permintaan dan respons ada di Dokumentasi API CapSkip.

Tentang demo GeeTest v3 ini

Halaman ini adalah versi langsung dari Demo GeeTest v3 tempat Anda dapat menguji cara kerja teka-teki geser-untuk-pas dan menyaksikannya dipecahkan secara real time. GeeTest v3 adalah captcha penggeser yang Anda jumpai pada formulir login dan pendaftaran di seluruh dunia: sepotong gambar dipotong keluar dan Anda menyeretnya kembali ke celahnya. Pecahkan dan GeeTest mengembalikan tiga nilai, geetest_challenge, geetest_validate dan geetest_seccode, yang diperiksa server Anda terhadap GeeTest sebelum mempercayai permintaan itu.

Pengembang, penguji, dan insinyur otomatisasi dapat menggunakan halaman uji GeeTest v3 ini untuk menyaksikan challenge terdaftar, penggeser berjalan, dan triplet kembali, serta untuk mengukur cara CapSkip memecahkan GeeTest v3. Baik Anda perlu memecahkan GeeTest sekali maupun mengotomatiskan ribuan pemecahan, CapSkip adalah pemecah GeeTest yang bekerja dengan tiga cara: yang tanpa kode ekstensi pemecah captcha untuk Chrome dan Firefox, dan SDK pemecahan captcha untuk Python, Node.js, PHP, dan C#, serta emulasi siap pakai untuk layanan captcha yang mungkin Anda bayar per pemecahan saat ini, semuanya dengan pemecahan tanpa batas pada satu harga tetap. Ketiganya digerakkan oleh AI desktop yang sama pemecah captcha, diinstal sekali dan berjalan di komputer Anda sendiri, sehingga tidak ada yang diantre di server jarak jauh dan tidak ada yang ditagih per pemecahan.

Bisakah saya mempertahankan kode 2Captcha atau Anti-Captcha yang sudah ada?
Ya. Aplikasi CapSkip mengemulasikan API dari 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha dan SolveCaptcha. Pilih layanan Anda di aplikasi, klik "Add to hosts file", dan permintaan yang sudah dikirim kode Anda akan dipecahkan secara lokal oleh CapSkip, tanpa perubahan kode dan tanpa biaya per pemecahan.
Bagaimana cara memecahkan GeeTest v3?
Instal Ekstensi CapSkip atau SDK, jalankan aplikasi desktop CapSkip, dan CapSkip mengembalikan challenge, validate, serta seccode yang valid untuk gt dan challenge yang Anda kirimkan. Ekstensi menggeser potongan puzzle untuk Anda di halaman, sementara SDK memungkinkan Anda memecahkan GeeTest v3 dari kode Anda sendiri.
Bisakah GeeTest v3 dilewati?
Ya. CapSkip adalah pemecah GeeTest v3 yang menemukan letak celahnya, menyeret potongan ke sana, dan memberi Anda triplet geetest_challenge, geetest_validate, dan geetest_seccode yang dapat Anda kirimkan seperti pengguna sungguhan.
Mengapa saya memerlukan challenge baru untuk setiap pemecahan?
GeeTest v3 membagi parameternya menjadi dua. gt adalah pengenal situs yang statis, tetapi challenge bersifat sekali pakai dan kedaluwarsa dalam sekitar satu menit, dan memuat widget akan menghabiskannya. Daftarkan challenge baru tepat sebelum setiap pemecahan, persis seperti yang dilakukan langkah 2 di atas, atau GeeTest akan menolak jawabannya.
Seberapa cepat CapSkip memecahkan GeeTest v3?
CapSkip biasanya mengembalikan triplet GeeTest v3 dalam beberapa detik. Setiap pemecahan berjalan secara lokal di perangkat Anda sendiri, sehingga tidak ada yang diantrekan di server jarak jauh, dan itu penting di sini karena tantangannya cepat kedaluwarsa.
Bisakah saya menggunakan CapSkip dengan bahasa pemrograman lain?
Ya. Selain SDK Python, Node.js, PHP dan C#, CapSkip menyediakan HTTP API standar, sehingga Anda dapat memecahkan GeeTest v3 dari bahasa, framework atau alat apa pun. Lihat Referensi API GeeTest v3.
Apakah CapSkip pemecah GeeTest gratis?
Ekstensi ini gratis untuk dipasang, dan uji coba satu dolar memberi Anda akses penuh selama tujuh hari dengan 1.000 pemecahan. Lisensi berbayar membuka pemecahan tanpa batas dengan satu harga tetap, tanpa biaya per captcha.