Multi-cURL aktarımları kendi sıralarında tamamlanır. Her tutamaca farklı bir proxy atadıysanız, ilk tamamlanan sonuç mutlaka giriş listenizdeki ilk proxy'ye ait değildir.

Her tutamacı yapılandırırken kararlı bir aktarım tanımlayıcısı ekleyin. Seçilebilir genel uç noktaları test ediyorsanız, HTTP proxy listesi HTTP adayları sağlar. PHP, libcurl'ün özel veri mekanizmasını sunar:

$id = 'job-17';
curl_setopt($handle, CURLOPT_PROXY, 'http://203.0.113.10:8080');
curl_setopt($handle, CURLOPT_PRIVATE, $id);

curl_multi_info_read() tamamlanan bir aktarımı bildirdiğinde, tanımlayıcıyı geri almak için döndürülen tutamacı kullanın:

$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);

Bu tanımlayıcıyla anahtarlanmış, hedefi, yapılandırılmış proxy'yi ve deneme numarasını içeren bir uygulama kaydı tutun. Başka bir proxy üzerinden yeni deneme, aynı genel işe ait olsa bile yeni bir deneme kaydını hak eder.

Üç tür adresi ayrı tutun

Yapılandırılmış proxy uç noktası cURL'ye verilen adrestir. Bir bağlantının eş adresi, cURL'nin açtığı ağ bağlantısını tanımlar. Hedefin gördüğü çıkış IP'si karşı taraftan bildirilen bilgidir. Bunlar farklı olabilir, özellikle zincirleme veya sağlayıcı tarafından yönetilen proxy'lerde.

Özel meta veriler amaçlanan yapılandırmanızı kaydeder; hedefin hangi IP'yi gördüğünü kanıtlayamaz. Tersine, bir hedefin IP yanıtı programınızdaki hangi tutamacın onu ürettiğini otomatik olarak söylemez.

Rutin günlüklerde güvenli bir proxy tanımlayıcısı saklayın. Tam uç nokta kimlik bilgileri içeriyorsa, bu URL'yi başarısız her aktarım için günlüğe kaydetmek parolayı tüm hata koleksiyonunuza yayar.

Bu küçük muhasebe adımı karışık sonuçları okumayı kolaylaştırır: bir iş, bir deneme, bir seçilmiş proxy ve bir gerçek sonuç. Ayrıca PHP'nin kaynak tabanlı ve nesne tabanlı cURL API'leri arasında değişen rastlantısal tutamaç gösterimlerine güvenmekten de kaçınır.

İlgili makaleler