테스트 사이트 - 개발 중인 베타 버전입니다

서버정보검색

· 19년 전 · 2609 · 1
<?
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>
";

?><div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

세상이슈
19년 전
수고하시네요

게시글 목록

번호 제목
8947
8946
8945
8939
8930
8924
8922
8914
8909
8907
JavaScript home, end키 1
28496
8906
8905
8903
28495
8901
8894
8893
8888
8885
8883
8881
8872
8868
8856
8853
8852
8849
8847
8842
8838
8833
8829
8824
8821
8819
8818
28492
8817
8814
28490
8811
8810
8809
8805
8804
8801
8797
8799
8795
8789
8784
8782
8772
8771
28488
8768
28486
8765
8761
8756
8751
28480
8746
JavaScript 이동툴 4
8739
8735
28476
8726
8725
8718
8710
8703
8700
8697
8694
8693
8692
8691
8689
8686
8680
8678
8671
8670
8667
28465
8665
8664
8663
8662
8661
8660
8659
8657
8656
8641
8628
8627
8626
8625