GeeTest · Live-Demo

GeeTest v3-Demo

Die Schiebepuzzle-Challenge von GeeTest.

  • Kostenlos, ohne Anmeldung
  • Das echte Widget des Anbieters
  • Die Verifizierungsantwort ansehen

Live-GeeTest v3-Widget

Klicken Sie auf den Balken und schieben Sie das Puzzleteil an die richtige Stelle. Die Prüfung erfolgt, sobald GeeTest die Werte challenge, validate und seccode zurückgibt.

So lösen Sie GeeTest v3

Das Feld oben ist ein Live- GeeTest v3 Herausforderung, das Schiebe-Puzzle. Diese Seite zeigt drei einfache Wege, GeeTest v3 zu lösen und die drei Werte zu erhalten, die es zurückgibt, geetest_challenge, geetest_validate und geetest_seccode: automatisch mit der CapSkip-Browser-Erweiterung, in Ihrem eigenen Code mit dem CapSkip-SDK oder indem Sie den Captcha-Dienst, den Ihre Tools bereits aufrufen, an CapSkip umleiten. CapSkip läuft lokal auf Ihrem Gerät, sodass keine Gebühren pro Lösung anfallen und nichts Ihren Rechner verlässt.

Kein Code nötig

Option 1: Lösen Sie GeeTest v3 mit der Browsererweiterung

Der einfachste Weg, GeeTest v3 zu umgehen, ist die CapSkip-Captcha-Löser-Erweiterung für Chrome und Firefox. Es findet die Lücke im Puzzle, zieht das Teil mit einer menschenähnlichen Bewegung an seinen Platz und übergibt der Website einen gültigen seccode, ganz ohne Code zu schreiben.

1

Installieren Sie die Erweiterung

Fügen Sie CapSkip aus dem Chrome Web Store oder von Firefox Add-ons hinzu. Es funktioniert auch in Brave, Edge, Opera und Vivaldi.

2

Starten Sie die CapSkip-App

Installieren und öffnen Sie die CapSkip-Desktop-App. Sie übernimmt das Lösen auf Ihrem eigenen Gerät und arbeitet mit der Erweiterung zusammen.

3

Es löst automatisch

Laden Sie diese Seite neu, und CapSkip schiebt das Puzzleteil für Sie in die Lücke. Sie behalten lieber die Kontrolle? Wechseln Sie jederzeit in den manuellen Modus.

Für Entwickler

Option 2: GeeTest v3 mit dem CapSkip-SDK lösen

Automatisierung, einen Scraper oder einen Bot am Erstellen? Verwenden Sie das CapSkip-SDK zum Captcha-Lösen um GeeTest v3 zu lösen aus Python, Node.js, PHP oder C#. Sie übergeben den gt, ein frischer challenge und die Seiten-URL, und CapSkip gibt die gelösten Werte challenge, validate und seccode zurück, die Sie wie ein echtes einreichen können.

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

Bevor Sie beginnen

CapSkip löst lokal. Laden und starten Sie die CapSkip-Desktop-App und lassen Sie sie im Hintergrund geöffnet. Das SDK kommuniziert mit ihr über 127.0.0.1:8080, sodass es keine Cloud-Aufrufe und keine Gebühren pro Lösung gibt.

Die Challenge läuft ab

Anders als ein reCAPTCHA-Sitekey benötigt GeeTest v3 zwei Werte. Der gt oben ist statisch und ändert sich nie, aber der challenge ist einmalig nutzbar und verfällt nach etwa einer Minute, und es wird verbraucht, sobald das Widget es lädt. Holen Sie unmittelbar vor jeder Lösung ein neues, genau das macht Schritt 2.

1

Installieren Sie das SDK

Fügen Sie den offiziellen CapSkip-Client zu Ihrem Projekt hinzu.

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

Holen Sie sich ein frisches gt und challenge

Diese Seite registriert ihre GeeTest-Challenge serverseitig und gibt die benötigte Nonce in einem Inline- capskipCaptcha Objekt. Lesen Sie das, und fordern Sie dann von der Seite eine eigene Herausforderung an, damit die vom Widget verwendete unberührt bleibt.

import json, re, requests

PAGE = "https://capskip.com/de/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/de/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/de/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/de/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}");

Sie erhalten die der Seite gt plus ein frisches 32-Zeichen- challenge. Lösen Sie es sofort.

3

GeeTest v3 lösen und die drei Werte erhalten

Übergeben Sie den gt, the challenge die Sie gerade registriert haben, und die dieser Seite url zu geetest(). CapSkip zieht das Puzzleteil in die Lücke und gibt das gelöste Triplett zurück.

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/de/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/de/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/de/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/de/captcha-demo/geetest-v3/");

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

Sie erhalten challenge, validate und seccode, bereit zum Absenden.

4

Verwenden Sie die drei Werte

Senden Sie das Triplet unter den Namen zurück, die das Widget selbst verwendet. Auf dieser Seite ist das derselbe admin-ajax-Aufruf, den der Prüfen Schritt macht, der den seccode gegen GeeTest verifiziert, bevor er grün wird.

// 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.
Erweitert

CapSkip auf anderen GeeTest v3-Websites verwenden

Um GeeTest v3 überall zu lösen, benötigen Sie drei Dinge von der Seite:

  • gt: die öffentliche Captcha-ID, pro Website statisch. Es ist das gt Query-Parameter bei den Aufrufen des Widgets an api.geetest.com/gettype.php und get.php.
  • challenge: ein nur einmal verwendbarer Wert, der aus der seiteneigenen init- oder register-Anfrage stammt, in der Regel eine kleine JSON-Antwort neben dem gt. Spielen Sie genau diese eine Anfrage vor jeder Lösung erneut ab, um eine frische Challenge zu erhalten.
  • Seiten-URL: die vollständige Adresse der Seite.

Regionale API-Server und Proxys

Manche Websites sind an einen regionalen GeeTest-Endpunkt gebunden, etwa api-na.geetest.com. Übergeben Sie es als api_server über die HTTP-API, wenn das der Fall ist. Ein proxy (proxy und proxytype) wird ebenfalls unterstützt, was hilft, wenn die Website die Challenge an Ihre IP bindet.

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

Wenn eine Lösung als abgelehnt zurückkommt, ist die übliche Ursache ein veraltete Challenge: Er wurde bereits von der Seite verwendet oder blieb länger als eine Minute ungenutzt.

Sie verwenden nicht Python, Node.js, PHP oder C#? Die SDKs sind lediglich Wrapper über der CapSkip-HTTP-API (die standardmäßige in.php / res.php Endpunkte mit method=geetest), sodass Sie GeeTest v3 lösen können von jede Sprache, jedes Framework oder Tool. Siehe die GeeTest v3 API-Referenz.

Keine Code-Änderungen

Option 3: Senden Sie Ihren bestehenden Löser-Dienst-Code an CapSkip

Lösen Sie GeeTest v3 bereits über einen Pay-per-Captcha-Dienst wie 2Captcha, Anti-Captcha oder CapMonster? Sie müssen keine einzige Zeile umschreiben. Die CapSkip-App enthält einen Service-Emulator die die eigenen APIs dieser Dienste lokal spricht: Wählen Sie den von Ihnen genutzten Dienst, klicken Sie auf Add to hosts file, und jede Anfrage, die Ihr Bot, Scraper oder Ihr Standard-Tool bereits daran sendet, wird von CapSkip auf Ihrem eigenen Rechner beantwortet, zu einem Pauschalpreis statt einer Rechnung pro Lösung.

1

Wählen Sie Ihren Dienst

Öffnen Sie die CapSkip-App und wählen Sie den Dienst, mit dem Ihr Code bereits kommuniziert: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha, SolveCaptcha oder Captchas.io.

2

Add to hosts file

Ein Klick in der App richtet die Domain dieses Dienstes auf CapSkip, sodass die Aufrufe Ihres Tools auf Ihrer eigenen Maschine beantwortet werden, statt an eine kostenpflichtige API zu gehen.

3

Betreiben Sie Ihr Tool unverändert

Derselbe API-Schlüssel, dieselbe Anfrage, dieselbe Polling-Schleife. CapSkip antwortet im eigenen Format dieses Dienstes, und Ihr Code erhält die gelöste Challenge sowie die validate- und seccode-Werte zurück.

Nichts weiter unten ändert sich beim Umstieg. Es ist derselbe Aufruf, den Ihr Code heute macht, außer dass GeeTest v3 nun lokal gelöst wird und die gelösten Challenge-, Validate- und Seccode-Werte von CapSkip zurückkommen:

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/de/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":"…"}

Client-Bibliotheken funktionieren auf die gleiche Weise: ein Anti-Captcha-artiger createTask / getTaskResult -Paar oder jeder Wrapper, der auf einem dieser Dienste aufbaut, funktioniert weiter, sobald der Emulator aktiviert ist. Die vollständige Referenz für Anfrage und Antwort finden Sie in der CapSkip-API-Dokumentation.

Über diese GeeTest-v3-Demo

Diese Seite ist eine Live- GeeTest-v3-Demo wo Sie testen können, wie das Schieberätsel funktioniert, und in Echtzeit zusehen, wie es gelöst wird. GeeTest v3 ist das Slider-Captcha, das Ihnen weltweit auf Login- und Anmeldeformularen begegnet: Ein Stück wird aus einem Bild ausgeschnitten und Sie ziehen es zurück in die Lücke. Lösen Sie es, und GeeTest gibt drei Werte zurück, geetest_challenge, geetest_validate und geetest_seccode, was Ihr Server bei GeeTest prüft, bevor er der Anfrage vertraut.

Entwickler, Tester und Automatisierungs-Ingenieure können diese GeeTest-v3-Testseite nutzen, um zu beobachten, wie sich die Challenge registriert, der Slider auslöst und das Triplet zurückkommt, und um zu benchmarken, wie CapSkip GeeTest v3 löst. Ob Sie GeeTest einmal lösen oder Tausende von Lösungen automatisieren müssen – CapSkip ist ein GeeTest-Löser der auf drei Arten funktioniert: die No-Code- Captcha-Löser-Erweiterung für Chrome und Firefox, und die Captcha-Löse-SDK für Python, Node.js, PHP und C#, sowie eine nahtlose Emulation der Captcha-Dienste, für die Sie heute vielleicht pro Lösung zahlen – alles mit unbegrenztem Lösen zu einem einzigen Pauschalpreis. Alle drei werden von derselben Desktop-KI Captcha-Löser, einmal installiert und auf Ihrer eigenen Maschine laufend, sodass nichts auf einem entfernten Server in die Warteschlange gestellt und nichts pro Lösung abgerechnet wird.

Kann ich meinen bestehenden 2Captcha- oder Anti-Captcha-Code behalten?
Ja. Die CapSkip-App emuliert die APIs von 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha und SolveCaptcha. Wählen Sie Ihren Dienst in der App, klicken Sie auf "Add to hosts file", und die Anfragen, die Ihr Code bereits sendet, werden lokal von CapSkip gelöst, ohne Code-Änderungen und ohne Gebühr pro Lösung.
Wie löse ich GeeTest v3?
Installieren Sie die CapSkip-Erweiterung oder der SDK, führen Sie die CapSkip-Desktop-App aus, und CapSkip gibt einen gültigen challenge, validate und seccode für die gt und challenge zurück, die Sie ihm übergeben. Die Erweiterung schiebt das Puzzleteil für Sie direkt auf der Seite, während Sie mit dem SDK GeeTest v3 aus Ihrem eigenen Code heraus lösen können.
Kann GeeTest v3 umgangen werden?
Ja. CapSkip ist ein GeeTest v3-Löser, der ermittelt, wo sich die Lücke befindet, das Teil hineinzieht und Ihnen das Tripel aus geetest_challenge, geetest_validate und geetest_seccode übergibt, das Sie wie ein echter Nutzer übermitteln können.
Warum brauche ich für jede Lösung eine neue Challenge?
GeeTest v3 teilt seine Parameter in zwei. Der gt ist ein statischer Site-Identifier, aber die Challenge ist einmalig verwendbar und läuft nach etwa einer Minute ab, und das Laden des Widgets verbraucht sie. Registrieren Sie unmittelbar vor jedem Lösen eine frische Challenge, genau wie in Schritt 2 oben, sonst weist GeeTest die Antwort zurück.
Wie schnell löst CapSkip GeeTest v3?
CapSkip gibt in der Regel innerhalb weniger Sekunden ein GeeTest-v3-Triplett zurück. Jede Lösung läuft lokal auf Ihrem eigenen Gerät, sodass nichts auf einem entfernten Server in eine Warteschlange gestellt wird, was hier wichtig ist, weil die Challenge schnell abläuft.
Kann ich CapSkip mit anderen Programmiersprachen verwenden?
Ja. Über die Python-, Node.js-, PHP- und C#-SDKs hinaus stellt CapSkip eine standardmäßige HTTP-API bereit, sodass Sie GeeTest v3 aus jeder Sprache, jedem Framework oder Tool lösen können. Siehe die GeeTest v3 API-Referenz.
Ist CapSkip ein kostenloser GeeTest-Löser?
Die Erweiterung ist kostenlos installierbar, und ein Ein-Dollar-Trial gibt Ihnen sieben Tage lang vollen Zugriff mit 1.000 Lösungen. Bezahlte Lizenzen schalten unbegrenztes Lösen zu einem einzigen Pauschalpreis frei, ohne Gebühren pro Captcha.