원문 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');
?>
반응형
'Dev > Web' 카테고리의 다른 글
자스크립트로 마우스 위치 얻기(IE, FF) (4) | 2006.05.23 |
---|---|
테터툴즈에서 내 도메인을 리퍼러에 나오지 않게 하기 (0) | 2006.05.22 |
proxy 서버를 이용한 웹 서핑 (0) | 2006.04.18 |
UTF-8 인코딩 방식으로 다국어 페이지 만들기 (0) | 2005.06.21 |
자바스크립트용 email 주소 검사 함수 (0) | 2005.06.21 |