php 소켓통신
페이지 정보
본문
function get_fsock_data($domain, $url, $port=80, $timeout=30){
$fp = fsockopen($domain, $port, $errno, $errstr, $timeout) or die($errstr);
if($fp){
$out = \"GET $url HTTP/1.1rn\";
$out .= \"Host: $domainrn\";
$out .= \"Connection: Closernrn\";
fwrite($fp, $out);
$res = '';
while(!feof($fp)){
$res .= fgets($fp, 128);
}
fclose($fp);
$pattern = '/HTTP/1.ds(d+)/';
if(preg_match($pattern, $res, $matches) && $matches[1] == 200){
$data_arr = explode(\"rnrn\", $res);
$data = $data_arr[1];
$enc = mb_detect_encoding($data, array('EUC-KR', 'UTF-8', 'shift_jis', 'CN-GB'));
if($enc != 'UTF-8'){
$data = iconv($enc, 'UTF-8', $data); //본인 사이트에 맞는 인코딩으로 변경
}
return $data;
}
}
return false;
}
$data = get_fsock_data('test.com', '/fsock/test.php');
echo $data;
$data = get_fsock_data(도메인, 파일URL, 포트, 제한시간[초]);
도 메 인 : http등의 프로토콜을 포함 할 수 없으며, IP만으로 접근가능한 사이트인 경우 IP도 가능
파일 URL : 도메인을 제외한 파일의 전체URL
$fp = fsockopen($domain, $port, $errno, $errstr, $timeout) or die($errstr);
if($fp){
$out = \"GET $url HTTP/1.1rn\";
$out .= \"Host: $domainrn\";
$out .= \"Connection: Closernrn\";
fwrite($fp, $out);
$res = '';
while(!feof($fp)){
$res .= fgets($fp, 128);
}
fclose($fp);
$pattern = '/HTTP/1.ds(d+)/';
if(preg_match($pattern, $res, $matches) && $matches[1] == 200){
$data_arr = explode(\"rnrn\", $res);
$data = $data_arr[1];
$enc = mb_detect_encoding($data, array('EUC-KR', 'UTF-8', 'shift_jis', 'CN-GB'));
if($enc != 'UTF-8'){
$data = iconv($enc, 'UTF-8', $data); //본인 사이트에 맞는 인코딩으로 변경
}
return $data;
}
}
return false;
}
$data = get_fsock_data('test.com', '/fsock/test.php');
echo $data;
$data = get_fsock_data(도메인, 파일URL, 포트, 제한시간[초]);
도 메 인 : http등의 프로토콜을 포함 할 수 없으며, IP만으로 접근가능한 사이트인 경우 IP도 가능
파일 URL : 도메인을 제외한 파일의 전체URL
관련링크
- 이전글널포인트 이용한 sql인젝션 20.02.21
- 다음글php 파일 다운로드 20.02.21
댓글목록
등록된 댓글이 없습니다.