偵測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>