메뉴 건너뛰기

프로그램언어

2018.07.24 18:03

웹서버조회 소스

조회 수 4543 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

<?
function query ($url, $osinfo) {
if ($url == "http://") { return; }
$array = parse_url($url);
$server = eregi_replace("[^0-9a-z\.\-]", "", $array[host]);
$port = $array[port] != "" ? $array[port] : 80;

// 웹서버 정보
$fp = fsockopen($server, $port);
if (!$fp) {
$wwwresult = "질의하신 웹서버에 접속할 수 없습니다.";
}
else {
fputs($fp, "HEAD $url HTTP/1.1\n\n");
while(!feof($fp)) {
$rt = fgets($fp, 255);
if (ereg("^Server", $rt)) { $wwwresult = "Web $rt"; }
}
fclose($fp);
$wwwresult = ereg_replace("[\r\n]", "", $wwwresult);
$wwwresult = ereg_replace("[^\n]{60}", "
\\0\n", $wwwresult);
}
if ($wwwresult == "") {
$wwwresult = "질의하신 서버의 웹서버 정보를 파악할 수 없습니다."; }

// 운영체제 정보
if ($osinfo) {
$osresult = `nmap -O $server -p $port -P0`;
ereg(".*\n(Remote operating system guess|Remote OS guesses): ([^\r\n]+)", $osresult, $match);
$os = $match[2];
if ($os != "") {
$os = "Operating System: $os";
}
else {
$os = "질의하신 서버의 운영체제 정보를 파악할 수 없습니다.";
}
$os = ereg_replace("[^\n]{60}", "
\\0\n", $os);
}

// 결과 출력
$server = strtoupper($server);
if ($os != "") { $wwwresult .= "\n\n$os"; }
$ip = @gethostbyname($server);
if (ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", $ip)) {
$server .= "\n\nIP Address: $ip";
}
return "
<TABLE CELLSPACING=0 CELLPADDING=0 ALIGN=CENTER>
<TR>
<TD>
<BR>
<PRE>
Server Name: $server

$wwwresult
</PRE>
</TD>
</TR>
</TABLE>
";

}

// ########################################################################

// 운영체제 정보 예측 여부
$osguess = 0;

/*
*
* 1. 운영체제 정보를 예측하기 위해서는 위의 값을 1로 지정한다.
*
* 2. nmap이라는 유명한 해킹(포트스캐닝)도구는 목적시스템의
* 운영체제정보를 예측해내는 기능이 들어있다.
* 다만 root 사용자에게만 운영체제정보 예측기능을 허용하므로
* 다음과 같이 SetUserID를 부여하는 등의 조치가 필요하다.
* # chmod +s nmap
*
http://www.insecure.org/nmap/
*
*/

if (!$osguess) { $osinfo = 0; }
if ($osinfo) { $osinfo_checked = "CHECKED"; }

// 질의
if (!ereg("^http://", $url)) { $url = "
http://$url"; }
$result = query($url, $osinfo);

// ########################################################################

// HTML 출력
print "
<HTML>
<HEAD>
<TITLE>웹서버 정보 조회</TITLE>
<META http-equiv=\"content-type\" content=\"text/html; charset=EUC-KR\">
<STYLE TYPE=\"text/css\">
<!--
A, TD, BODY
{ text-decoration:none; font-size:9pt; color:black; }
A:hover
{ text-decoration:underline; font-size:9pt; color:red; }
// -->
</STYLE>
</HEAD>
<BODY $body>

<BR>
<BR>
<BR>

<TABLE CELLSPACING=0 CELLPADDING=0 ALIGN=CENTER>
<TR>
<TD BGCOLOR=SILVER>

<TABLE WIDTH=400 CELLSPACING=1 CELLPADDING=2 BORDER=0 ALIGN=CENTER>

<TR>
<TD ALIGN=CENTER BGCOLOR=BEIGE>
<BR>
<B>웹서버 정보 조회</B>
<BR>
<BR>
</TD>
</TR>

<TR>
<TD ALIGN=CENTER BGCOLOR=WHITE>
<FORM METHOD=POST ACTION=$PHP_SELF>
URL <INPUT TYPE=TEXT NAME=url VALUE=\"$url\" SIZE=30>
<INPUT TYPE=SUBMIT VALUE=\"조회!\">
";
if ($osguess) {
print "
<INPUT TYPE=CHECKBOX NAME=osinfo $osinfo_checked>OS
";
}
print "
</TD>
</FORM>
</TR>
";
if ($result != "") {
print "
<TR>
<TD ALIGN=CENTER BGCOLOR=#EEEEEE>
$result
</TD>
</TR>
";
}

print "
</TABLE>

</TD>
</TR>
</TABLE>

</BODY>
</HTML>
";

?>



List of Articles
번호 제목 날짜 조회 수
300 GD를 이용한 스팸성 게시물 차단을 위한 보안 단어 입력 예제 2014.02.27 26945
299 glob 현재 디렉토리에서 pattern에 일치하는 경로 이름을 배열로 반환 2016.12.23 19636
298 headers_sent 헤더 전송 여부를 확인 2016.12.23 19405
297 HEREDOC <<< ( PHP에서 echo로 HTML쉽게 표시하기 ) 2021.03.26 371
296 htmlentities <-> html_entity_decode (엔티티 2014.04.12 30397
295 HTTP Protocol의 data method - GET / POST 2016.04.22 20637
294 HTTP 인증하기, 로그인창 띄우기 file 2021.03.26 214
293 http://홈주소/?mode=xxx 하는방법 2017.03.07 17642
292 iframe 사용시 iframe의 높이가 내용의 높이만큼 자동으로 조절 2014.04.12 21862
291 implode — 문자열로 배열 원소를 결합 2016.12.23 19951
290 include 와 namespace 2019.01.08 1087
289 ini_get - php.ini에 지정되어 있는 지시어의 값을 읽어온다 2016.12.23 19520
288 input 자동완성기능 끄기 2019.02.19 1217
287 is_array — 변수가 배열인지 확인 2016.12.23 18048
286 Javascript 두 좌표 사이의 거리 구하기, 두 좌표의 중앙 좌표 구하기 file 2020.09.23 535
285 JAVASCRIPT 차트, 그래프 모음 (php chart, graph ) 2021.03.26 1614
284 jQuery 개발자를 위한 메모 - 레퍼런스 2014.03.26 19522
283 jQuery 개발자를 위한 메모 - 플러그 인 2014.03.26 19257
282 jquery 이용 아이디 중복체크 실시간 2014.04.12 20341
281 JSON and JavaScript usage 2014.03.26 19064
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved