偵測IP

出自 新化國中wiki平台
前往: 導覽搜尋

摘自http://www.php5.idv.tw/bb-2894.htm

<!--123
主機監控程式v1.0版 2000/10/11
ipscan.php
版權說明:
這個程式是阿楠所寫,您可以自由修改、散佈這個程式,但請保留這個表頭。如果您
將這個程式修改,煩請回傳給阿楠hjn@ms1.nnjh.kl.edu.tw
說明:
1.它可以掃描主機的各特定的通訊埠,如http :80,proxy:3128等,並立即顯示連線狀況
2.它可以幫助網管人員立即掌握各項重要服務的狀況,但請考慮合法用途!
3.這個程式尚有許多努力的空間,例如可以自動寫信給網管人員、或是改成一個shell script
利用排程如crontab來管理等…
-->
<CENTER>
主機連線狀況一覽表
<BR><BR>
更新時間:<?echo date("Y-m-d H:i:s")?>
<BR>

<FORM ACTION=" <?PHP echo($PHP_SELF); ?>" METHOD="post">
<table border="1" width="99%">
<tr>
<td width="17%">主機的前三碼</td>
<td width="25%">
<INPUT TYPE="text" NAME="host" SIZE="22" MAXLENGTH="100"> </td>
<td width="58%">
  </td>
</tr>
<tr>
<td width="17%">主機的最後一碼</td>
<td width="25%">從<INPUT TYPE="text" NAME="from" SIZE="8" MAXLENGTH="100">到<INPUT TYPE="text" NAME="to" SIZE="8" MAXLENGTH="100">

</td>
<td width="58%"> 

</td>
</tr>
<tr>
<td width="17%">port </td>
<td width="25%"><select size="1" name="portno">
<option value="21">Ftp-21</option>
<option value="23">telnet-23</option>
<option value="25">stmp-25</option>
<option value="80">apache-80</option>
<option value="110">pop3-110</option>
<option value="3128">proxy-3128</option>
<option value="all">以上全部</option>
</select><INPUT TYPE=submit VALUE="送出">
</td>
<td width="58%"> 
</td>
</tr>
</table>
<?
if ($host){

$all=array("21","23","25","80","110","3128");

if ($portno=="all"){
$all2=implode(":", $all);
echo "你所掃描的主機是從$host.$from 至 $host.$to 通訊port是$all2";
?>
<TABLE BORDER=1 width="584">
<TR align=center><TD bgcolor=#F3FCB4 width="33" align="center">項次</TD>
<TD bgcolor=#F3FCB4 width="95" align="center">ip名稱</TD>
<TD bgcolor=#F3FCB4 width="60" align="center">Ftp(21)</TD>
<TD bgcolor=#F3FCB4 width="60" align="center">telnet(23)</TD>
<TD bgcolor=#F3FCB4 width="60" align="center">Stmp(25)</TD>
<TD bgcolor=#F3FCB4 width="60" align="center">www(80)</TD>
<TD bgcolor=#F3FCB4 width="60" align="center">pop3(110)</TD>
<TD bgcolor=#F3FCB4 width="60" align="center">proxy(3128)</TD></TR>
<?
$begin_time=time();
$count=0;
for($ip=$from; $ip<=$to; $ip++){
$count++;
$iport=$host.".".$ip;
//全部檢查port-start
echo "<TR align=center><TD>$count </TD><TD>$iport</TD> ";

for($i=0; $i<count($all); $i++){
$portno=$all[$i];
$fp = fsockopen($iport,$portno,$errno,$errstr,2);
if($fp){
echo "<TD BGCOLOR=#33CCFF>連線</TD>";fclose($fp);}else{echo"<TD BGCOLOR=#FF6666>斷線</TD>";}

}
echo "</TR>";
}
$end_time=time();
$total=$end_time-$begin_time;
echo "<br>合計連線中有$count 個,總共花了:".$total. "秒";
}

//檢查單一port
else{
echo "你所掃描的主機是從$host.$from 至 $host.$to 通訊port是.$portno";
$begin_time=time();
$count=0;
for($ip=$from; $ip<$to; $ip++){
$iport=$host.".".$ip;
$fp = fsockopen($iport,$portno,$errno,$errstr,1);
if($fp){ echo "<br>".$iport."連線中";fclose($fp);$count++;}
}
$end_time=time();
$total=$end_time-$begin_time;
echo "<br>合計連線中有$count 個,總共花了:".$total. "秒";
}
}?>
</table>
<!--=======版權宣告,請勿拿掉=========-->
<p align=center><font size=1>[Design by<a href=http://hjn.nnjh.kl.edu.tw/~hjn> HJN</a>]</font>