본문 바로가기

탐구생활/PHP

curl proxy with basic auth

프록시 서버를 경유해서 내용을 가져오는 경우의 php 코드.


프록시 서버 주소가 someproxyserver.com 이고, 포트번호가 9999, 프록시 서버의 basic 인증용 아이디와 패스워드는 proxyuser, proxypass 인 경우의 예제.



$curl = curl_init();

$timeout = 0; // 0으로 하면 시간제한이 없다.

$proxy_server_addr = 'someproxyserver.com';

curl_setopt($curl, CURLOPT_URL, $target);

curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);

curl_setopt($curl, CURLOPT_PROXY, $proxy_server_addr);

curl_setopt($curl, CURLOPT_PROXYPORT, 9999);

curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

curl_setopt($curl, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);

curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

curl_setopt($curl, CURLOPT_PROXYUSERPWD, 'proxyuser:proxypass');

$result = curl_exec($curl);

curl_close($curl);


return $result;