Dev/Web
이미지 링크 방지된것 뚫기
newtype
2006. 5. 19. 10:31
원문 URL
http://blog.naver.com/siso821/20001194757
소켓을 이용해 이미지를 직접 받아 보여준다는 내용 같은데,
직접 테스트 해보지는 않았습니다.
[원문]=-=-=-=-=-=-=-=-=--=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
꼭 네이버에 해당하는건 아니지만 이미지 링크방지된곳을 뚤 수 있다는 대강의;;내용입니다
그냥 링크 : <IMG SRC="http://blogfiles13.naver.net/data1/2004/2/21/44/kaegukgi.gif" />
프로그램 링크 : <IMG SRC="http://wince.or.kr/php-bin/link.html?url=http://blogfiles13.naver.net/data1/2004/2/21/44/kaegukgi.gif" />
<?php
function link_data($url, $ref='')
{
$urls=explode('/', $url);
$host=$urls[2];
$page=str_replace("http://$host", "", $url);
$request_header = "GET $page HTTP/1.0\r\n";
$request_header .= "Host: $host\r\n";
$request_header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n";
$request_header .= "Accept-Language: ko\r\n";
$request_header .= "Accept-Encoding: gzip, deflate\r\n";
if($ref) $request_header .= "Referer: ".$ref."\r\n";
$request_header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)\r\n";
$request_header .= "Cache-Control: no-cache\r\n";
$request_header .= "Connection: Keep-Alive\r\n";
$request_header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$request_header .= "\r\n";
$socket = @fsockopen($host,80,$errno,$errstr,30);
if($socket){
fwrite($socket,$request_header);
do $header .= fread($socket,1); while (!preg_match('/\\r\\n\\r\\n$/',$header));
if (preg_match('/Transfer\\-Encoding:\\s+chunked\\r\\n/',$header)) {
do {
$byte = "";
$chunk_size="";
do {
$chunk_size.=$byte;
$byte=fread($socket,1);
} while ($byte!="\\r");
fread($socket, 1);
$chunk_size = hexdec($chunk_size);
$result .= fread($socket,$chunk_size);
fread($socket,2);
} while ($chunk_size);
} else {
if(preg_match('/Content\\-Length:\\s+([0-9]*)\\r\\n/',$header,$matches)) {
$result = fread($socket,$matches[1]);
}else{
while (!feof($socket)) $result .= fread($socket, 4096);
}
}
fclose($socket);
} else {
die('Server Connect Error');
}
return $result;
}
echo link_data($_GET[url], 'http://blog.naver.com');
?>
http://blog.naver.com/siso821/20001194757
소켓을 이용해 이미지를 직접 받아 보여준다는 내용 같은데,
직접 테스트 해보지는 않았습니다.
[원문]=-=-=-=-=-=-=-=-=--=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
꼭 네이버에 해당하는건 아니지만 이미지 링크방지된곳을 뚤 수 있다는 대강의;;내용입니다
그냥 링크 : <IMG SRC="http://blogfiles13.naver.net/data1/2004/2/21/44/kaegukgi.gif" />
프로그램 링크 : <IMG SRC="http://wince.or.kr/php-bin/link.html?url=http://blogfiles13.naver.net/data1/2004/2/21/44/kaegukgi.gif" />
<?php
function link_data($url, $ref='')
{
$urls=explode('/', $url);
$host=$urls[2];
$page=str_replace("http://$host", "", $url);
$request_header = "GET $page HTTP/1.0\r\n";
$request_header .= "Host: $host\r\n";
$request_header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n";
$request_header .= "Accept-Language: ko\r\n";
$request_header .= "Accept-Encoding: gzip, deflate\r\n";
if($ref) $request_header .= "Referer: ".$ref."\r\n";
$request_header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)\r\n";
$request_header .= "Cache-Control: no-cache\r\n";
$request_header .= "Connection: Keep-Alive\r\n";
$request_header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$request_header .= "\r\n";
$socket = @fsockopen($host,80,$errno,$errstr,30);
if($socket){
fwrite($socket,$request_header);
do $header .= fread($socket,1); while (!preg_match('/\\r\\n\\r\\n$/',$header));
if (preg_match('/Transfer\\-Encoding:\\s+chunked\\r\\n/',$header)) {
do {
$byte = "";
$chunk_size="";
do {
$chunk_size.=$byte;
$byte=fread($socket,1);
} while ($byte!="\\r");
fread($socket, 1);
$chunk_size = hexdec($chunk_size);
$result .= fread($socket,$chunk_size);
fread($socket,2);
} while ($chunk_size);
} else {
if(preg_match('/Content\\-Length:\\s+([0-9]*)\\r\\n/',$header,$matches)) {
$result = fread($socket,$matches[1]);
}else{
while (!feof($socket)) $result .= fread($socket, 4096);
}
}
fclose($socket);
} else {
die('Server Connect Error');
}
return $result;
}
echo link_data($_GET[url], 'http://blog.naver.com');
?>
반응형