Toplu WHOIS sorguları için proxy'ler şarttır: hız limitlerini ve IP engellerini aşar, çok sayıda alan adı kaydında hizmet kesintisi olmadan verimli veri toplamayı sağlar.
Toplu WHOIS Sorguları İçin Proxy Neden Gerekli
Alan adı kayıt kuruluşları ve registrar'lar tarafından işletilen WHOIS sunucuları, kayıtlı alan adları hakkında bilgi sunmak üzere tasarlanmıştır. Ancak kötüye kullanımı önlemek, sunucu kaynaklarını korumak ve trafiği yönetmek için sorgu hacmine kısıtlama getirirler. Tek bir IP adresinden toplu sorgu denemesi genellikle şu sonuçları doğurur:
- Hız sınırlama (rate limiting): Sunucular, bir IP'nin belirli bir zaman aralığında (örneğin dakika veya saat başına) yapabileceği sorgu sayısını kısıtlar. Bu limiti aşmak geçici engellere veya kısıtlanmış yanıtlara yol açar.
- IP engelleme: Tek bir IP'den sürekli veya agresif sorgulama, otomatik güvenlik sistemlerini tetikleyerek o IP adresinin WHOIS servisine erişiminin kalıcı olarak yasaklanmasına neden olabilir.
- Coğrafi kısıtlamalar: Bazı WHOIS veri kaynakları veya belirli TLD kayıt kuruluşları gecikme farkları gösterebilir, hatta belirli coğrafi bölgelerden gelen istekleri engelleyebilir. Proxy'ler, performansı optimize etmek veya bölgesel engelleri aşmak için isteklerin coğrafi olarak hedeflenmesine olanak tanır.
Proxy'ler yükü birden fazla IP adresine dağıtır ve her isteğin farklı bir kaynaktan geliyormuş gibi görünmesini sağlar. Bu strateji, tek bir çıkış noktasından gelen kötüye kullanımı caydırmak için tasarlanmış güvenlik mekanizmalarını tetiklemeden yüksek hacimli veri toplamayı mümkün kılar.
WHOIS Veri Toplama İçin Proxy Türleri
Proxy türü seçimi performansı, maliyeti ve tespit edilme riskini etkiler.
Veri merkezi proxy'leri
Veri merkezi proxy'leri, veri merkezlerinde barındırılan sunuculardan gelir. Genellikle birçok kullanıcı arasında paylaşılır veya tek bir kullanıcıya tahsis edilir.
- Avantajları: Yüksek hız, görece düşük maliyet, büyük miktarlarda kolayca temin edilebilir.
- Dezavantajları: Alt ağ özellikleri nedeniyle hedef sunucular tarafından konut dışı trafik olarak daha kolay tespit edilir. Gelişmiş anti-bot sistemleri tarafından engellenmeye daha yatkındır.
- Kullanım alanları: Hedef sunucunun anti-bot önlemlerinin daha gevşek olduğu, yüksek hacimli ve daha az hassas WHOIS sorguları için ya da maliyet verimliliğinin öncelikli olduğu durumlar için uygundur.
Residential proxy'ler
Residential proxy'ler trafiği, internet servis sağlayıcılarının (ISP) ev kullanıcılarına verdiği gerçek konut IP adresleri üzerinden yönlendirir.
- Avantajları: Yüksek anonimlik; internete bir konut adresinden erişen meşru kullanıcılar gibi görünür, bu da tespit edilmelerini ve engellenmelerini zorlaştırır.
- Dezavantajları: Daha yüksek maliyet; son kullanıcı bağlantıları üzerinden yönlendirme nedeniyle veri merkezi proxy'lerine kıyasla potansiyel olarak daha düşük hız.
- Kullanım alanları: Katı anti-bot önlemlerini aşmak, veri merkezi IP'lerini agresif biçimde engelleyen WHOIS servislerine erişmek veya veri bütünlüğünün ve başarılı veri çekiminin kritik olduğu durumlar için şarttır.
Rotasyonlu proxy'ler ve sticky oturumlar
- Rotasyonlu proxy'ler: Her istekte veya kısa, önceden tanımlı bir aralıktan sonra yeni bir IP adresi atar. Bu, istekleri çok geniş bir IP havuzuna dağıtmak ve tek bir IP'nin hız sınırına takılma ya da engellenme riskini en aza indirmek için idealdir.
- Sticky oturumlar: Aynı IP adresini daha uzun süre, çoğunlukla birkaç dakikadan bir saate kadar korur. WHOIS servisi oturumları izliyorsa veya birbiriyle ilişkili bir dizi istek için tutarlı IP kimliği gerekiyorsa faydalı olabilir.
| Özellik | Veri merkezi proxy'leri | Residential proxy'ler |
|---|---|---|
| Kaynak | Ticari veri merkezleri | Gerçek konut ISP'leri |
| Maliyet | Daha düşük | Daha yüksek |
| Hız | Genelde daha hızlı | Yönlendirme ve son kullanıcı bant genişliği nedeniyle daha yavaş olabilir |
| Anonimlik | Orta ila yüksek | Çok yüksek |
| Tespit riski | Daha yüksek; konut dışı trafik olarak tanınabilir | Daha düşük; meşru kullanıcı trafiği gibi görünür |
| En iyi kullanım | Yüksek hacim, daha az hassas, maliyet verimli | Katı anti-bot aşma, kritik veri, yüksek başarı |
Proxy'leri WHOIS Araçlarıyla Kullanmak
Proxy'leri WHOIS sorgu akışlarına entegre etmek için ya proxy yapılandırmasını yerel olarak destekleyen bir araç kullanmanız ya da trafiği sistem genelinde çalışan bir proxy yardımcı programı üzerinden yönlendirmeniz gerekir.
Özel scriptler (Python örneği)
Programatik WHOIS sorgularında kütüphaneler proxy kullanacak şekilde yapılandırılabilir. Ham WHOIS protokolü (port 43) HTTP/HTTPS proxy'lerini doğal olarak desteklemese de, birçok modern WHOIS servisi bunu destekleyen web arayüzleri veya API'ler sunar. Doğrudan WHOIS için genellikle SOCKS proxy'leri kullanılır.
import requests
import time
from datetime import datetime
# NOT: 'requests' kütüphanesi HTTP/HTTPS istekleri içindir.
# Doğrudan WHOIS protokolü (port 43), işletim sistemi seviyesinde bir SOCKS
# proxy yapılandırması (örneğin proxychains) veya ham soket bağlantıları için
# SOCKS destekleyen özel bir kütüphane gerektirir.
# Bu örnek, varsayımsal web tabanlı bir WHOIS API'si veya bir WHOIS sitesinin
# scraping senaryosu için proxy kullanımını gösterir.
def fetch_whois_api(domain, proxy_url):
"""
Varsayımsal web tabanlı bir WHOIS API'si üzerinden HTTP/HTTPS proxy
kullanarak bir alan adının WHOIS verisini getirir.
"""
proxies = {
"http": proxy_url,
"https": proxy_url,
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Accept": "application/json",
"Accept-Language": "en-US,en;q=0.9",
}
api_endpoint = f"https://api.whoislookup.example.com/v1/domain/{domain}"
try:
response = requests.get(api_endpoint, proxies=proxies, headers=headers, timeout=15)
response.raise_for_status() # HTTP hataları (4xx veya 5xx) için istisna fırlatır
return response.json()
except requests.exceptions.RequestException as e:
print(f"[{datetime.now().isoformat()}] Error fetching WHOIS for {domain} via {proxy_url}: {e}")
return None
# Örnek kullanım:
domains_to_check = ["example.com", "testdomain.net", "anotherdomain.org", "sample.info"]
proxy_list = [
"http://user1:[email protected]:8080",
"http://user2:[email protected]:8080",
"http://user3:[email protected]:8080",
]
for i, domain in enumerate(domains_to_check):
current_proxy = proxy_list[i % len(proxy_list)] # Proxy'leri döndür
print(f"[{datetime.now().isoformat()}] Checking {domain} using proxy {current_proxy}...")
whois_data = fetch_whois_api(domain, current_proxy)
if whois_data:
print(f"[{datetime.now().isoformat()}] WHOIS data for {domain}: Status = {whois_data.get('status', 'N/A')}")
# Gerekirse diğer WHOIS veri alanlarını işleyin
else:
print(f"[{datetime.now().isoformat()}] Failed to retrieve WHOIS data for {domain}.")
time.sleep(2) # Saygılı davranmak ve agresif sorgulamadan kaçınmak için gecikme ekleyin
Yerel WHOIS istemcisi için Proxychains
Ham WHOIS protokolü (TCP port 43) üzerinde çalışan standart komut satırı whois aracı için genellikle proxychains (Linux/macOS) gibi bir araç kullanılır. proxychains, belirtilen bir programın kurduğu her TCP bağlantısını bir proxy (HTTP, HTTPS, SOCKS4, SOCKS5) üzerinden geçmeye zorlar.
- Kurulum:
proxychainskurun (örneğin Debian tabanlı sistemlerdesudo apt-get install proxychains-ng). -
Yapılandırma:
proxychainsyapılandırma dosyasını düzenleyin (genellikle/etc/proxychains.confveya~/.proxychains/proxychains.conf).dynamic_chainsatırının başındaki yorum işaretini kaldırın ve proxy sunucu bilgilerinizi dosyanın sonuna ekleyin.```
/etc/proxychains.conf dosyasından bir bölüm
...
dinamik zinciri kullanmak için bu satırı yorumdan çıkarın
dynamic_chain
... diğer ayarlar
ProxyList biçimi: tür ip port [kullanıcı parola]
Örnek:
socks5 127.0.0.1 9050 # Tor varsayılanı
http 192.168.1.1 8080
socks5 user:[email protected] 1080
Proxy'lerinizi buraya ekleyin:
http proxy1.example.com 8080 user1 pass1
socks5 proxy2.example.com 1080 user2 pass2
``` -
Kullanım:
whoiskomutunuzun başınaproxychainsekleyin.bash proxychains whois example.com
proxychains,whoiskomutunun bağlantısını yapılandırılmış proxy'lerden bir veya birkaçı üzerinden yönlendirir.
Zorluklar ve Çözüm Stratejileri
Proxy ile toplu WHOIS sorgulaması birkaç zorluk çıkarır:
- CAPTCHA'lar: Bazı web tabanlı WHOIS servisleri, rotasyonlu proxy kullanılsa bile CAPTCHA uygular.
- Çözüm: Mümkün olduğunda doğrudan WHOIS protokolünü tercih edin (CAPTCHA olasılığı daha düşüktür). Web arayüzleri için CAPTCHA çözüm servislerini entegre edin.
- Veri ayrıştırma karmaşıklığı: WHOIS verisi çoğunlukla yapılandırılmamış metin olarak döner ve proxy kullanımından bağımsız olarak sağlam bir ayrıştırma mantığı gerektirir.
- Çözüm: WHOIS ayrıştırma için tasarlanmış kütüphaneleri kullanın (örneğin Python'da
python-whois) veya kendi regex/metin işleme rutinlerinizi geliştirin.
- Çözüm: WHOIS ayrıştırma için tasarlanmış kütüphaneleri kullanın (örneğin Python'da
- Proxy kalitesi ve güvenilirliği: Kalitesiz proxy'ler (yavaş, sık sık çevrimdışı veya zaten kara listede) başarısız sorgulara yol açar.
- Çözüm: Proxy'leri güvenilir sağlayıcılardan alın. Proxy sağlık kontrolleri ve yüksek performanslı proxy'leri önceliklendiren bir rotasyon mantığı uygulayın.
- IP kara listesi ve tespit: Kullanım kalıpları aşırı agresifse residential proxy'ler bile eninde sonunda tespit edilip engellenebilir.
- Çözüm: Proxy kaynaklarınızı çeşitlendirin. Akıllı rotasyon uygulayın, istek kalıplarını değiştirin ve insan gezinme davranışını taklit edin (örneğin gerçekçi User-Agent ve referer değerleri).
- Kısıtlama ve hız sınırlama (proxy ile bile): Proxy'ler yardımcı olsa da aşırı hızlı istekler, mevcut proxy IP'si için sunucu tarafında geçici kısıtlamayı yine de tetikleyebilir.
- Çözüm: İstekler arasına gecikme koyun (Python'da
time.sleep). Yeniden denemelerde üstel geri çekilme (exponential backoff) kullanın.
- Çözüm: İstekler arasına gecikme koyun (Python'da
Toplu WHOIS Sorgularında Proxy Kullanımı İçin En İyi Uygulamalar
Başarılı toplu WHOIS veri toplama için etkin proxy yönetimi kritik önemdedir.
- Çeşitli bir proxy havuzu tutun: Anonimliği ve engellere karşı dayanıklılığı en üst düzeye çıkarmak için farklı sağlayıcılardan ve farklı coğrafi konumlardan geniş bir proxy havuzu kullanın.
- Akıllı proxy rotasyonu uygulayın: Proxy'leri stratejik biçimde döndürün. Örneğin her alan adı sorgusu için yeni bir proxy atayın ya da belirli sayıda istekten sonra veya bir proxy başarısız olduğunda rotasyon yapın.
- Sağlam hata yönetimi ve yeniden deneme: Scriptlerinizi bağlantı hatalarını, zaman aşımlarını ve belirli HTTP durum kodlarını (örneğin 403 Forbidden, 429 Too Many Requests) düzgün karşılayacak şekilde tasarlayın. Farklı proxy'lerle yeniden deneme mekanizmaları kurun.
- Meşru kullanıcı davranışını taklit edin: İsteklerin standart bir web tarayıcısından geliyormuş gibi görünmesi için uygun HTTP başlıklarını (
User-Agent,Accept-Language,Referer) ayarlayın. - Saygılı scraping pratikleri: Web tabanlı WHOIS servislerini scraping yaparken
robots.txtyönergelerine uyun. Hedef sunucuyu boğmamak için istekler arasına makul gecikmeler koyun. - Proxy performansını izleyin: Havuzunuzdaki her proxy'nin başarı oranını, yanıt süresini ve hata oranını sürekli izleyin. Performansı düşük proxy'leri çıkarın veya önceliğini düşürün.
Etik ve Yasal Hususlar
Proxy ile bile olsa toplu WHOIS veri toplamanın etik ve yasal sorumlulukları vardır.
- Hizmet şartları (ToS): Sorguladığınız WHOIS servisinin veya registrar/kayıt kuruluşunun hizmet şartlarını mutlaka inceleyin. Toplu veri toplama veya scraping açıkça yasaklanmış olabilir.
- Veri gizliliği düzenlemeleri: WHOIS verisi kişisel bilgi içeriyorsa (gizlenmiş olsa bile) veri gizliliği yasalarına (örneğin GDPR, CCPA) dikkat edin. Toplanan verinin saklanması, işlenmesi ve kullanımı konusunda uyumluluğu sağlayın.
- Kötüye kullanımın önlenmesi: WHOIS verisi alan adı yönetimi, siber güvenlik araştırması ve fikri mülkiyet koruması gibi meşru amaçlar içindir. Toplanan veriyi spam, taciz veya başka yasa dışı faaliyetler için kullanmayın.
- Meşru kullanım alanları: Proxy'ler alan adı portföylerinin izlenmesi, marka koruması için yeni kayıtların takibi, siber güvenlik tehdit istihbaratı veya alan adı trendleri üzerine pazar araştırması gibi meşru faaliyetleri kolaylaştırır.
