亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用 fsockopen() 函數(shù)開放端口掃描器的實(shí)例

 更新時(shí)間:2017年08月19日 09:09:24   投稿:jingxian  
下面小編就為大家?guī)硪黄?fsockopen() 函數(shù)開放端口掃描器的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

1、前言

本文利用 fsockopen() 函數(shù),編寫一個(gè)功能簡單的端口掃描器。

2、關(guān)鍵技術(shù)

本實(shí)例的端口號是固定的,通過對數(shù)組的遍歷,利用 fsockopen() 函數(shù)連接,如果連接成功,則該端口處于開放狀態(tài),否則該端口處于關(guān)閉狀態(tài)。

核心代碼如下:

foreach ($port as $key => $value) {
 echo '<tr>';
 echo '<td>' . $key . '</td>';
 echo '<td>' . $value . '</td>';
 echo '<td>' . $msg[$key] . '</td>';
 //$errno 和 $errstr 在這里基本用不上,只是為了設(shè)置 timeout,防止請求超時(shí)
 $fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主機(jī)(hostname)不可訪問,將會拋出一個(gè)警告級別(E_WARNING)的錯(cuò)誤提示。所有需要加@
 $result = $fp ? '<span >開啟</span>' : '<span >關(guān)閉</span>';
 echo '<td>' . $result . '</td>';
 echo '</tr>';
}

3、代碼如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>端口掃描</title>
 <style type="text/css">
  td{
   padding:10px;
   border-bottom:1px solid #eee;
  }
 </style>
</head>
<body>
 <form method="post" action='#'>
  網(wǎng)址/ip:<input type="text" name="ip" value="<?php echo $_POST['ip'] ?? '127.0.0.1'?>">
  <button>掃描</button>
 </form>
 <table>
  <thead>
   <tr>
    <td>id</td>
    <td>端口號</td>
    <td>服務(wù)</td>
    <td>開啟狀態(tài)</td>
   </tr>
  </thead>
  <tbody>
   <?php 
    $ip = $_POST['ip'] ?? '127.0.0.1';
    if(ip2long($ip)){
     $aIp = explode('.', $ip);//ip4地址使用.分隔符
     //這里沒有對 0.0.0.0 這種本機(jī)地址進(jìn)行判斷,只是粗略的判斷ip是否合法 
     foreach ($aIp as $key => $value) {
      if($value < 0 || $value > 255){
       die('地址不合法');
      }
     }
    }
    
    $port = array(
     21, 
     23, 
     25,
     79,
     80, 
     110, 
     135, 
     137, 
     138, 
     139, 
     143, 
     443, 
     445, 
     1433, 
     3306, 
    );
    $msg = array(
     'Ftp',
     'Telnet',
     'Smtp',
     'Finger',
     'Http',
     'Pop3',
     'Location Service',
     'Netbios-NS',
     'Netbios-DGM',
     'Netbios-SSN',
     'IMAP',
     'Https',
     'Microsoft-DS',
     'MSSQL',
     'MYSQL',
     'Terminal Services'
    );
    //無論使用prot還是msg循環(huán)都是可以的,因?yàn)?key是對應(yīng)的,都是索引數(shù)組
    foreach ($port as $key => $value) {
     echo '<tr>';
     echo '<td>' . $key . '</td>';
     echo '<td>' . $value . '</td>';
     echo '<td>' . $msg[$key] . '</td>';
     //$errno 和 $errstr 在這里基本用不上,只是為了設(shè)置 timeout,防止請求超時(shí)
     $fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主機(jī)(hostname)不可訪問,將會拋出一個(gè)警告級別(E_WARNING)的錯(cuò)誤提示。所有需要加@
     $result = $fp ? '<span >開啟</span>' : '<span >關(guān)閉</span>';
     echo '<td>' . $result . '</td>';
     echo '</tr>';
    }

   ?>
  </tbody>
 </table>
</body>
</html>
</html> 
因?yàn)橥祽?,把頁面和結(jié)果都寫在一起了,布局就將就把。

4、主要函數(shù)介紹

4.1、fsockopen

根據(jù)一個(gè)主機(jī)名來創(chuàng)建一個(gè)連接,成功返回一個(gè)資源對象,失敗返回false;主機(jī)不可用是拋出一個(gè)警告

詳情參考:http://php.net/manual/en/function.fsockopen.php

以上這篇利用 fsockopen() 函數(shù)開放端口掃描器的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • thinkPHP5 tablib標(biāo)簽庫自定義方法詳解

    thinkPHP5 tablib標(biāo)簽庫自定義方法詳解

    這篇文章主要介紹了thinkPHP5 tablib標(biāo)簽庫自定義方法,結(jié)合具體實(shí)例形式分析了thinkPHP5標(biāo)簽庫的定義、用法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • 使用PHP和HTML5 FormData實(shí)現(xiàn)無刷新文件上傳教程

    使用PHP和HTML5 FormData實(shí)現(xiàn)無刷新文件上傳教程

    這篇文章主要介紹了使用PHP和HTML5 FormData實(shí)現(xiàn)無刷新文件上傳教程,本文先是分解了程序的編寫步驟,最后給出一個(gè)完整示例,需要的朋友可以參考下
    2014-09-09
  • 淺談PHP中的數(shù)據(jù)傳輸CURL

    淺談PHP中的數(shù)據(jù)傳輸CURL

    下面小編就為大家?guī)硪黄獪\談PHP中的數(shù)據(jù)傳輸CURL。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • 在IIS7.0下面配置PHP 5.3.2運(yùn)行環(huán)境的方法

    在IIS7.0下面配置PHP 5.3.2運(yùn)行環(huán)境的方法

    最近心血來潮,想學(xué)習(xí)一下php,既然想學(xué)習(xí)了就得需要搭環(huán)境。在網(wǎng)上找來找去都是說IIS5.0或者6.0的配置。真是看得云里霧里的,這樣直接影響了我的判斷力。現(xiàn)特意寫下來在IIS7.0下面如何進(jìn)行配置PHP。
    2010-04-04
  • PHP的fsockopen、pfsockopen函數(shù)被主機(jī)商禁用的解決辦法

    PHP的fsockopen、pfsockopen函數(shù)被主機(jī)商禁用的解決辦法

    這篇文章主要介紹了PHP的fsockopen、pfsockopen函數(shù)被主機(jī)商禁用的解決辦法,一是使用stream_socket_client函數(shù)代替,二是寫一個(gè)類似fsockopen功能的自定義函數(shù),需要的朋友可以參考下
    2014-07-07
  • yii2中關(guān)于加密解密的那些事兒

    yii2中關(guān)于加密解密的那些事兒

    yii2.0怎么對傳輸?shù)臄?shù)據(jù)進(jìn)行加密解密?下面這篇文章就來給大家介紹了yii2中關(guān)于加密解密的那些事兒,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • PHP命名空間和自動加載類

    PHP命名空間和自動加載類

    PHP的命名空間(namespace)是php5.3之后才有的。這篇文章主要介紹了PHP命名空間和自動加載類的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • Laravel框架中VerifyCsrfToken報(bào)錯(cuò)問題的解決

    Laravel框架中VerifyCsrfToken報(bào)錯(cuò)問題的解決

    這篇文章主要給大家介紹了關(guān)于Laravel框架中VerifyCsrfToken報(bào)錯(cuò)問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí),需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • php 截取utf-8格式的字符串實(shí)例代碼

    php 截取utf-8格式的字符串實(shí)例代碼

    這篇文章主要介紹了php 截取utf-8格式的字符串實(shí)例代碼的相關(guān)資料,并附實(shí)例代碼,需要的朋友可以參考下
    2016-10-10
  • PHP 中TP5 Request 請求對象的實(shí)例詳解

    PHP 中TP5 Request 請求對象的實(shí)例詳解

    這篇文章主要介紹了PHP 中TP5 Request 請求對象的實(shí)例詳解的相關(guān)資料,這里提供實(shí)現(xiàn)代碼幫助大家理解這部分內(nèi)容,需要的朋友可以參考下
    2017-07-07

最新評論