curl대신 사용할 수 있는 소스
curl을 사용할 수 없는 경우라면 다음의 방법으로도 리퍼러를 속일수 있습니다.
물론 file이나 fopen 대신 사용할수도 있습니다.
아래의 소스를 파일로 만들어서 저장한다음 읽어올 테스트 파일도 하나 만듭니다.
그 파일내에 <?=$_SERVER['HTTP_REFERER']?> 라고 넣고 저장합니다.
이하 소스입니다.
<?php
$url = "http://82da.com/Ybbs/sample/fsockopen_test.php";//읽어올 url
$referer = "http://test.com/";//속일 리퍼러
$array = parse_url($url)undefined;
$url_scheme = $array['scheme'];
$url_server = $array['host'];
$url_path = $array['path'];
$url_query= $array['query'];
$url_port = (empty($array['port'])) ? 80 : $array['port'];
$fp = fsockopen($url_server, $url_port);
if (empty($fp)) {
echo "error-http소켓접속에 실패하였습니다.";
exit;
}
fputs($fp, "GET " . $url_path . "?" . $url_query . " HTTP/1.0\n");
fputs($fp, "Accept: */*\n");
fputs($fp, "Content-Type: application/x-www-form-urlencoded\n");
fputs($fp, "Host: $url_server:$url_port\n");
fputs($fp, "Referer: $referer\n");
fputs($fp, "Cache-control: private\n");
fputs($fp, "Pragma: no-cache\n");
fputs($fp, "Connection: close\n\n");
$text = '';
while (!feof($fp)){
$text .= fgets($fp, 1024);
}
fclose($fp);
echo $text;
?>