2017-01-28 72 views
0

我有一個捲曲功能:如何使用代理在PHP捲曲

function curl($url, $referer, $type=null){ 
    $agent = ($type != null && $type = 'movil') ? 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' : 'Mozilla/5.0(Windows;U;WindowsNT5.0;en-US;rv:1.4)Gecko/20030624Netscape/7.1(ax)'; 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt($ch, CURLOPT_REFERER, $referer); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    $page = curl_exec($ch); 
    curl_close($ch); 
    return $page; 
} 

但該功能顯示要求我的服務器的IP地址以便將是巨大的知道任何方式通過代理服務器ip和port.Thankyou使用它

+0

可能的重複[如何通過代理使用CURL?](http://stackoverflow.com/questions/5211887/how-to-use-curl-via-a-proxy) – StefansArya

回答

1

如果目的是隱藏源IP(請求發起服務器的IP),那麼使用curl是不可能的,因爲它是需要操作原始套接字連接的低級操作。

如果您正在尋找使用代理服務器時請求某個URL, 那麼你必須使用「CURLOPT_PROXY」。

function curl($url, $referer, $type=null){ 
    $agent = ($type != null && $type = 'movil') ? 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' : 'Mozilla/5.0(Windows;U;WindowsNT5.0;en-US;rv:1.4)Gecko/20030624Netscape/7.1(ax)'; 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
    curl_setopt($ch, CURLOPT_PROXY, '8.8.8.8'); // replace 
8.8.8.8' with proxy server's IP. 
    curl_setopt($ch, CURLOPT_PROXYPORT, '2211'); // replace '2211' with Proxy server's port. 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt($ch, CURLOPT_REFERER, $referer); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    $page = curl_exec($ch); 
    curl_close($ch); 
    return $page; 
}