แคปต์ชาปกติ สาธิต

หน้านี้อธิบายวิธีการแสดง แคปต์ชาปกติ และวิธีการทำงานของการยืนยัน แคปต์ชาปกติ Normal Captcha คือรูปภาพที่มีข้อความบิดเบี้ยวแต่มนุษย์สามารถอ่านได้ ผู้ใช้ต้องพิมพ์ข้อความจากภาพเพื่อแก้แคปต์ชา

ตัวอย่างแคปต์ชาปกติ
โลโก้ของ «แคปต์ชาปกติ»

ในหลายกรณี แคปต์ชาปกติ ขัดขวางการเข้าถึง ทำให้ผู้ใช้หงุดหงิด จำกัดการเข้าถึงข้อมูลที่เปิดอยู่ ทำให้แอปพลิเคชันและไซต์ทดสอบทำได้ยาก ใช้ตัวแก้ปัญหา แคปต์ชาปกติ สำหรับการบายพาสอัตโนมัติ

How to solve Normal Captcha

  1. Download the captcha image.

  2. Send image to our API.

    PHP

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->normal('path/to/captcha.jpg');
    } catch (\Exception $e) {
        die($e->getMessage());
    }
    
    die('Captcha solved: ' . $result->code);

    Python

    # https://github.com/2captcha/2captcha-python
    
    import sys
    import os
    
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
    
    from twocaptcha import TwoCaptcha
    
    api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
    
    solver = TwoCaptcha(api_key)
    
    try:
        result = solver.normal('path/to/captcha.jpg')
    
    except Exception as e:
        sys.exit(e)
    
    else:
        sys.exit('solved: ' + str(result))

    Java

    // https://github.com/2captcha/2captcha-java
    
    package examples;
    
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.Normal;
    
    public class NormalExample {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            Normal captcha = new Normal("path/to/captcha.jpg");
            try {
                solver.solve(captcha);
                System.out.println("Captcha solved: " + captcha.getCode());
            } catch (Exception e) {
                System.out.println("Error occurred: " + e.getMessage());
            }
        }
    }

    C#

    // https://github.com/2captcha/2captcha-csharp
    
    using System;
    using System.Linq;
    using TwoCaptcha.Captcha;
    
    namespace TwoCaptcha.Examples
    {
        public class NormalExample
        {
            public static void Main()
            {
                var solver = new TwoCaptcha("YOUR_API_KEY");
                Normal captcha = new Normal("path/to/captcha.jpg");
                try
                {
                    solver.Solve(captcha).Wait();
                    Console.WriteLine("Captcha solved: " + captcha.Code);
                }
                catch (AggregateException e)
                {
                    Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
                }
            }
        }
    }

    Go

    // https://github.com/2captcha/2captcha-go
    
    package main
    
    import (
        "fmt"
        "log"
        "github.com/2captcha/2captcha-go"
    )
    
    func main() {
        client := api2captcha.NewClient("API_KEY")
        captcha := api2captcha.Normal{
            File: "/path/to/captcha.jpg",
        }
        code, err := client.Solve(captcha.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }

    C++

    // https://github.com/2captcha/2captcha-cpp
    
    #include <cstdio>
    
    #include "curl_http.hpp"
    #include "api2captcha.hpp"
    
    int main (int ac, char ** av)
    {
    if (ac < 2)
    {
        printf ("Usage: ./normal path/to/image.jpg\n");
        return 0;
    }
    
    api2captcha::curl_http_t http;
    http.set_verbose (true);
    
    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);
    
    assert (ac > 1);
    
    api2captcha::normal_t cap;
    cap.set_file (av[1]);
    
    try
    {
        client.solve (cap);
        printf ("code '%s'\n", cap.code ().c_str ());
    }
    catch (std::exception & e)
    {
        fprintf (stderr, "Failed: %s\n", e.what ());
    }
    
    return 0;   
    }

    Ruby

    # https://github.com/2captcha/2captcha-ruby
    require 'api_2captcha'
    
    client =  Api2Captcha.new("YOUR_API_KEY")
    
    result = client.normal({ image: 'path/to/captcha.jpg'})
    # OR
    result = client.normal({
      image: 'https://site-with-captcha.com/path/to/captcha.jpg'
    })

    Manually:

    1. Multipart sample form:
    <form method="post" action="https://2captcha.com/in.php" enctype="multipart/form-data">
        <input type="hidden" name="method" value="post" />
        Your key:
        <input type="text" name="key" value="YOUR_APIKEY" />
        The CAPTCHA file:
        <input type="file" name="file" />
        <input type="submit" value="Upload and get the ID" />
    </form>
    1. If everything is fine server will return the ID of your captcha:

      OK|2122988149

      Otherwise server will return an error code.

    2. After 5 seconds send GET request to get the result:

      GET https://2captcha.com/res.php?key=YOUR_API_KEY&action=get&id=2122988149

      If captcha is already solved server will respond with the answer token:

      OK|W9H5K

      If captcha is not solved yet server will return CAPCHA_NOT_READY result. Repeat your request in 5 seconds. If something went wrong server will return an error code.

  3. Paste received code into the field. Then, submit the form.