PHP cURL ഉപയോഗിച്ച് പ്രോക്സി IP ഉപയോഗിക്കുക
PHP cURL ഹാൻഡിലിൽ HTTP അല്ലെങ്കിൽ SOCKS പ്രോക്സി ക്രമീകരിക്കുക, വെബ്സൈറ്റ് URL വേറെയാക്കി, ഗതാഗതപ്പിശകുകൾ HTTP മറുപടികളിൽനിന്ന് തിരിച്ചറിയുക.
വെബ്സൈറ്റ് curl_init()ൽ നിലനിർത്തി ഇടനിലക്കാരനെ ആ ഹാൻഡിലിൽ ക്രമീകരിക്കുക. PHPക്ക് cURL എക്സ്റ്റൻഷൻ വേണം; ടെർമിനലിൽ curl പ്രോഗ്രാം പ്രവർത്തിക്കുന്നത് എക്സ്റ്റൻഷൻ ലഭ്യമാണെന്ന് തെളിയിക്കില്ല.
<?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;രേഖയിലെ IPയും പോർട്ടും സ്വന്തം HTTP പ്രോക്സിയോ HTTP പ്രോക്സികളുടെ പട്ടികയിലെ ഇനമോ ഉപയോഗിച്ച് മാറ്റുക. CURLOPT_NOPROXY ഈ പരിശോധനയ്ക്ക് ബൈപാസ് നിയമങ്ങൾ മായ്ക്കുന്നു; CURLOPT_RETURNTRANSFER ബോഡി ബ്രൗസറിലേക്ക് അയയ്ക്കാതെ മടക്കിനൽകുന്നു. കണക്ഷൻ പരിധി സ്ഥാപിക്കലിനെയും ആകെ സമയപരിധി cURL പ്രവർത്തനത്തെയും നിയന്ത്രിക്കുന്നു.
SOCKS5 എൻഡ്പോയിന്റിനായി HTTP പ്രോക്സി ഓപ്ഷനുകൾ curl_exec()ന് മുമ്പ് മാറ്റുക:
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);CURLPROXY_SOCKS5_HOSTNAME ലക്ഷ്യസ്ഥാന DNS SOCKS സെർവറിനെ ഏൽപ്പിക്കുന്നു. പറഞ്ഞ പ്രോട്ടോകോൾ ഉപയോഗിക്കുക; പോർട്ട് 1080 മാത്രം അതിനെ തിരിച്ചറിയില്ല. ഏതൊരു പ്രോക്സി തിരഞ്ഞെടുപ്പിനും സൈറ്റിന്റെ സർട്ടിഫിക്കറ്റ് പരിശോധന നിർത്തേണ്ടതില്ല.
$body === false കർശനമായി പരിശോധിക്കുക. ശൂന്യ ബോഡി വിജയിച്ച കൈമാറ്റമാകാം; സൈറ്റിൽനിന്ന് ഒരു മറുപടിയും ഉണ്ടാകുംമുമ്പ് ടണൽ പരാജയപ്പെടാം. മറുവശത്ത്, ശൂന്യമല്ലാത്ത ബോഡിക്കൊപ്പം 403, 404 അല്ലെങ്കിൽ 429 വരാം. പൂർത്തിയായ അഭ്യർഥന ആവശ്യത്തിനു പറ്റുമോ എന്ന് തീരുമാനിക്കാൻ CURLINFO_RESPONSE_CODE cURL പിശകുഫലത്തോടൊപ്പം വായിക്കുക.