Explainers

Mobil IP'ler CAPTCHA Doğrulamasını Neden Daha Az Tetikler?

CAPTCHA sistemleri bir isteğin arkasında kaç gerçek kullanıcı olduğuna bakar. Mobil operatör IP'lerinin arkasında CGNAT (taşıyıcı sınıfı NAT) sayesinde binlerce abone aynı anda bulunduğu için reCAPTCHA ve Turnstile gibi sistemler mobil bağlantılara en yüksek güveni verir ve çoğu isteği doğrulama göstermeden geçirir. Bu rehberde bunun nedenini, hangi iş yüklerinde anlamlı olduğunu ve kalan doğrulamaları CaptchaAI ile nasıl çözeceğinizi göreceksiniz.


Mobil IP Ne Zaman Anlamlı?

Karar tek bir soruya iner: istek başına güvenilirlik mi önemli, yoksa hacim ve maliyet mi? Aşağıdaki tablo yaygın senaryoları hızlıca eşleştirir.

Senaryo Önerilen IP Türü
reCAPTCHA v3 skoru kritik (0,7 altını engelleyen site) Mobil
CAPTCHA ağırlıklı hedef (konut IP'lerini bile zorlayan site) Mobil
Oturum açısından kritik akış (giriş, ödeme) Mobil
Mobil trafik bekleyen platform (Instagram, TikTok) Mobil
Yüksek hacimli genel kazıma Konut / veri merkezi
Hız kritik iş Veri merkezi
Bütçe sınırlı Konut / veri merkezi

İstanbul merkezli bir otomasyon ekibi bir e-ticaret sitesinin ödeme adımını QA ortamında test ederken veri merkezi IP'siyle neredeyse her denemede CAPTCHA'ya takılıyordu; mobil bağlantıya geçince doğrulama sıklığı düştü ve kalan az sayıdaki CAPTCHA'yı CaptchaAI anında çözdü. Freelance işlerinde (Bionluk, Upwork) bu tür kritik akışlarda mobil IP genellikle karşılığını verir.

Mobil IP'ler Neden Bu Kadar Güvenilir?

Bunun nedeni taşıyıcı sınıfı NAT (CGNAT): her mobil IP'nin arkasında binlerce gerçek abone aynı anda bulunur, bu yüzden CAPTCHA sağlayıcıları riskli bir sinyali bile büyük ölçüde göz ardı eder:

Traditional IP:
  1 IP = 1 user → Easy to track and flag

Mobile (CGNAT):
  1 IP = 1,000+ users → Blocking = blocking real users

CAPTCHA provider logic:
  "This IP shows suspicious behavior, but 500 legitimate
   mobile users share it. Can't block → serve easier challenge
   or skip CAPTCHA entirely."

Bu mantık güven sıralamasına yansır: mobil IP'ler CAPTCHA'yı yaklaşık %1–5 oranında tetikler ve token kabulü %98'e yaklaşır; konut ve İSS IP'leri %5–15 oranında tetikler ve %95'e yakın kabul görür; veri merkezi IP'leri %30–70 tetikleme oranıyla yalnızca %80–90 kabul alır, işaretli veri merkezi IP'lerinde bu oran %50–70'e kadar düşer.

Mobil IP'leri CaptchaAI ile Entegre Etme

Akış basittir: sayfayı mobil bağlantı üzerinden çekin, sitekey varsa CaptchaAI'ye gönderin — temel kurulum şöyle görünür:

import requests
import time

# Mobile proxy configuration
MOBILE_PROXY = {
    "http": "http://user:pass@4g-proxy.example.com:5000",
    "https": "http://user:pass@4g-proxy.example.com:5000",
}

CAPTCHAAI_KEY = "YOUR_API_KEY"
CAPTCHAAI_URL = "https://ocr.captchaai.com"


def fetch_via_mobile(url):
    return requests.get(
        url,
        proxies=MOBILE_PROXY,
        headers={
            "User-Agent": "Mozilla/5.0 (Linux; Android 14; Pixel 8) "
            "AppleWebKit/537.36 (KHTML, like Gecko) "
            "Chrome/126.0.0.0 Mobile Safari/537.36",
        },
        timeout=30,
    )


def solve_if_needed(url, html):
    """Only solve CAPTCHA if one appears (rare with mobile IPs)."""
    import re
    match = re.search(r'data-sitekey="([^"]+)"', html)

    if not match:
        return None  # No CAPTCHA — common with mobile IPs

    sitekey = match.group(1)

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": url,
        "json": 1,
    })
    task_id = resp.json()["request"]

    for _ in range(60):
        time.sleep(5)
        resp = requests.get(f"{CAPTCHAAI_URL}/res.php", params={
            "key": CAPTCHAAI_KEY, "action": "get",
            "id": task_id, "json": 1,
        })
        data = resp.json()
        if data["request"] != "CAPCHA_NOT_READY":
            return data["request"]

    raise TimeoutError("Timeout")

Bazı sağlayıcılar IP'yi modemi uzaktan sıfırlayarak döndürür; yazılımsal oturum rotasyonundan farklı olarak fiziksel bir bağlantı sıfırlaması gerekir:

def rotate_mobile_ip(api_url):
    """Trigger IP rotation via modem reset API."""
    resp = requests.get(f"{api_url}/rotate")
    if resp.status_code == 200:
        time.sleep(10)  # Wait for new IP assignment
        return True
    return False


def get_current_ip(proxy):
    resp = requests.get("https://httpbin.org/ip", proxies=proxy, timeout=15)
    return resp.json()["origin"]


# Rotate and verify
old_ip = get_current_ip(MOBILE_PROXY)
rotate_mobile_ip("http://4g-proxy.example.com:8080")
new_ip = get_current_ip(MOBILE_PROXY)
print(f"Rotated: {old_ip} → {new_ip}")

reCAPTCHA v3 Skorları IP Türüne Göre Nasıl Değişir?

Proxy Type          │ Average Score │ Range
────────────────────┼───────────────┼────────────
Mobile (4G/5G)      │ 0.8           │ 0.7 - 0.9
Residential         │ 0.7           │ 0.5 - 0.9
ISP                 │ 0.6           │ 0.5 - 0.8
Datacenter          │ 0.2           │ 0.1 - 0.3
Headless + DC       │ 0.1           │ 0.1 - 0.1

Mobil IP'ler, tarayıcı ayarında değişiklik gerekmeden tutarlı biçimde en yüksek reCAPTCHA v3 skorlarını üretir; fark büyük ölçüde IP itibarından kaynaklanır.

Sağlayıcı Seçimi ve Maliyet

  • Bright Data — 195 ülke, 7 milyondan fazla IP, otomatik + API rotasyon, $30+/GB
  • Oxylabs — küresel kapsam, 20 milyon+ IP, otomatik + sabit oturum, $25+/GB
  • Smartproxy — 130'dan fazla ülke, 10 milyon+ IP, otomatik rotasyon, $20+/GB
  • IPRoyal — küresel kapsam, 5 milyondan fazla IP, otomatik + API rotasyon, $7+/GB
  • ProxyLTE — ABD/AB, fiziksel modemler, modem sıfırlama, $50+/ay
Metrik Mobil Konut Veri Merkezi
GB başına maliyet $20–50 $5–15 $0,50–2
100 sayfa başına CAPTCHA sayısı 2 10 40
CaptchaAI maliyeti (100 sayfa başına) $0,006 $0,030 $0,120
100 sayfa başına toplam maliyet $5–15 $2–5 $0,20–1

Mobil, en yüksek başarıyı en yüksek maliyetle sunan premium seçenektir; en zor hedeflerde seçici kullanın, geri kalan trafiği konut veya veri merkezi IP'lerinde tutun.

Mobil Kullanıcı Aracısı Eşleştirmesi

Mobil bağlantıda masaüstü Kullanıcı Aracısı (User-Agent) göndermek CAPTCHA oranını hemen yükseltir; aşağıdaki liste isteklerinizi cihazla tutarlı tutar:

MOBILE_UAS = [
    # Android Chrome
    "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 "
    "(KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36",

    # Android Samsung
    "Mozilla/5.0 (Linux; Android 14; SM-S918B) AppleWebKit/537.36 "
    "(KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36",

    # iOS Safari
    "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) "
    "AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 "
    "Mobile/15E148 Safari/604.1",
]

import random

def get_mobile_headers():
    return {
        "User-Agent": random.choice(MOBILE_UAS),
        "Accept": "text/html,application/xhtml+xml,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.9",
        "Accept-Encoding": "gzip, deflate, br",
    }

Sorun Giderme

Sorun Neden Çözüm
Hızlar düşük Hücresel ağ gecikmesi Kablolu mobil ağ geçidi kullanın veya gecikmeyi kabul edin
IP beklenmedik anda değişiyor Taşıyıcı CGNAT'ı yeniden atadı Sabit oturum parametresini kullanın
CAPTCHA'lar hâlâ çıkıyor Mobil IP'de masaüstü UA gönderiliyor UA'yı mobil cihazla eşleştirin
Bant genişliği maliyeti yüksek Sayfalar tam indiriliyor İstekleri filtreleyin, görselleri engelleyin
Bağlantı sık kopuyor Hücresel sinyal zayıf Üstel geri çekilmeyle (exponential backoff) yeniden deneyin

Sık Sorulan Sorular

Mobil IP, veri merkezi IP'sine göre ne kadar pahalıya mal olur?

GB başına 10–20 kat daha pahalıdır, ancak CAPTCHA sayısı ve CaptchaAI maliyeti de düşer; toplam fark görünenden küçük olabilir.

CaptchaAI mobil IP'den gelen istekleri farklı mı işler?

Hayır. CaptchaAI sitekey ve pageurl parametrelerini alıp token döndürür; isteği hangi IP'den gönderdiğiniz işleyişi değiştirmez.

Mobil IP kullanırken hangi CAPTCHA türleri hâlâ karşınıza çıkar?

Oran düşse de sıfıra inmez; reCAPTCHA v2/v3, Cloudflare Turnstile ve GeeTest (v3) doğrulamaları CAPTCHA ağırlıklı sitelerde zaman zaman görünür.

Tek bir sağlayıcıya mı bağlı kalmalıyım?

Hayır — kapsam ve rotasyon sağlayıcıya göre değişir; test edip en düşük CAPTCHA oranını veren sağlayıcıda kalın.

Kalan az sayıdaki CAPTCHA'yı CaptchaAI nasıl çözer?

sitekey tespit edildiğinde istek in.php'ye gönderilir, sonuç res.php ile sorgulanır ve token aynı IP'den forma iletilir.

İlgili Rehberler


En düşük CAPTCHA tetikleme oranı için mobil IP kullanın — CaptchaAI anahtarınızı alın ve kalan doğrulamaları API'ye bırakın.

Bu makale için yorumlar devre dışı bırakılmıştır.