程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php在線端口掃描器

php在線端口掃描器

編輯:PHP綜合
  PHP是一種功能強大的Web開發語言。開發效率高,語法簡單,為動態網站量身定做,加強面向對象 (向C++靠攏,與JAVA搭了點邊),可惜單線程(這是至命弱點,據說PHP是用CC++編寫的。),也能用C、C++、JAVA開發中間層,調用 COM,服務器維護難度小,故障少。

  既然是為動態網站量身定做,所以注定不能開發出X-scan這樣的超強掃描器,不過如果要實現一些簡單的功能,還是綽綽有余的。

  端口掃描是我們最常用的踩點手段。如果在網吧這種地方,下載一個專門的掃描器又比較麻煩,如果利用現有的Web服務提供的端口掃描。那可真的是省了不少事。

  下面我們就看看我寫的這個PHP端口掃描器的源代碼:

  $youip=$HTTP_SERVER_VARS["REMOTE_ADDR"]; // 獲取本機IP地址

  $remoteip=$HTTP_POST_VARS['remoteip']; // 獲取表單提交的IP地址

  ?>

  if (!empty($remoteip)){

  // 如果表單不為空就進入IP地址格式的判斷

  function err() {

  die("對不起,該IP地址不合法

  點擊這裡返回");

  }

  // 定義提交錯誤IP的提示信息

  $ips=explode(".",$remoteip);

  // 用.分割IP地址

  if (intval($ips[0])<1 or intval($ips[0])>255 or intval($ips[3])<1

  or intval($ips[3]>255)) err();

  // 如果第一段和最後一段IP的數字小於1或者大於255,則提示出錯

  if (intval($ips[1])<0 or intval($ips[1])>255 or intval($ips[2])<0

  or intval($ips[2]>255)) err();

  // 如果第二段和第三段IP的數字小於0或者大於255,則提示出錯

  $closed='此端口目前處於關閉狀態。';

  $opened='此端口目前處於打開狀態!';

  $close="關閉";

  $open="打開";

  $port=array(21,23,25,79,80,110,135,137,138,139,143,443,445,1433,3306,3389);

  $msg=array(

  'Ftp',

  'Telnet',

  'Smtp',

  'Finger',

  'Http',

  'Pop3',

  'Location Service',

  'Netbios-NS',

  'Netbios-DGM',

  'Netbios-SSN',

  'IMAP',

  'Https',

  'Microsoft-DS',

  'MSSQL',

  'MYSQL',

  'Terminal Services'

  );

  // 通過IP格式的檢查後用數組定義各端口對應的服務名稱及狀態

  echo "n";

  echo "n";

  echo "您掃描的IP:

  color=red>".$remoteip."n";

  echo "

  n";

  echo "n";

  echo "n";

  echo "n";

  echo "端口n";

  echo "服務n";

  echo "檢測結果n";

  echo "描述n";

  echo "

  n";

  // 輸出顯示的表格

  for($i=0;$i

  {

  $fp = @fsockopen($remoteip, $port[$i], &$errno, &$errstr, 1);

  if (!$fp) {

  echo "".$port[$i]."".$msg[$i]."  align=center>".$close."".$closed."

  n";

  } else {

  echo "".$port[$i]."".$msg[$i]."  align=center>".$open."".$opened."

  ";

  }

  }

  // 用for語句,分別用fsockopen函數連接遠程主機的相關端口,並輸出結果

  echo "n";

  echo "繼續掃描>>>n";

  echo "

  echo "

  n";

  echo "n";

  echo "n";

  echo "Copyright © 2004 Security

  Angel Team[S4T] All Rights Reserved.n";

  echo "

  n";

  echo "n";

  echo "

  n";

  echo "n";

  echo "n";

  exit;

  }

  // 探測結束

  echo "n";

  echo "n";

  echo "您的IP:".$youip."n";

  echo "

  n";

  echo "

  n";

  echo "n";

  echo "n";

  echo "n";

  echo "

  n";

  echo "

  ";

  echo "n";

  // 如果表單為空則顯示提交IP地址的表單

  ?>

  Copyright © 2014 Security Angel Team[S4T]

  All Rights Reserved.

  這個掃描器很簡單。就是用了一個數組來定義端口的相關信息,原理就是用fsockopen函數連接,如果可以連接,就表示端口打開,否則就是關閉。

  最大的缺點就是PHP是單線程的,所以速度會很慢,這個是用方便、簡單作為代價的,其實寫這個代碼的就是想告訴大家,PHP並不僅僅用於動態網站的開發,也可以用於網絡安全領域,往往太注意事物的本職工作,就會忽略其他方面的特點。

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved