PHP cURL ile proxy IP kullanın
PHP cURL tanıtıcısında HTTP veya SOCKS proxy ayarlayın, site URL’sini ayrı tutun ve taşıma hatalarını HTTP yanıtlarından ayırın.
Siteyi curl_init() içinde tutun ve aracıyı o tanıtıcıda ayarlayın. PHP’nin cURL uzantısı gerekir; terminalde çalışan curl programı uzantının mevcut olduğunu kanıtlamaz.
<?php
$ch = curl_init('https://example.com/');
curl_setopt_array($ch, [
CURLOPT_PROXY => 'http://203.0.113.10:8080',
CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
CURLOPT_NOPROXY => '',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 15,
]);
$body = curl_exec($ch);
if ($body === false) {
throw new RuntimeException(curl_error($ch), curl_errno($ch));
}
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), PHP_EOL;
echo $body;Belgelendirme IP’si ve portunu HTTP proxy’nizle veya HTTP proxy listesinden bir kayıtla değiştirin. CURLOPT_NOPROXY bu test için atlama kurallarını temizler; CURLOPT_RETURNTRANSFER gövdeyi tarayıcıya göndermek yerine döndürür. Bağlantı sınırı kurulum süresini, genel zaman aşımı cURL işlemini sınırlar.
SOCKS5 uç noktası için HTTP proxy seçeneklerini curl_exec() öncesinde değiştirin:
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);CURLPROXY_SOCKS5_HOSTNAME hedef DNS’ini SOCKS sunucusuna devreder. Belirtilen protokolü kullanın; tek başına 1080 portu onu tanımlamaz. Hiçbir proxy seçimi sitenin sertifika doğrulamasını kapatmayı gerektirmez.
$body === false ifadesini katı biçimde test edin. Boş gövde başarılı aktarım olabilir; tünel hatası site yanıtı oluşmadan önce meydana gelebilir. Tersine, boş olmayan gövde 403, 404 veya 429 ile gelebilir. Tamamlanan isteğin işinize yarayıp yaramadığını anlamak için CURLINFO_RESPONSE_CODE değerini cURL hata sonucuyla birlikte okuyun.