91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中怎么實現在線端口掃描功能

發布時間:2021-06-29 17:20:11 來源:億速云 閱讀:437 作者:Leah 欄目:網絡管理

這期內容當中小編將會給大家帶來有關PHP中怎么實現在線端口掃描功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

PHP4/5/7版本中提供了fsockopen方法,該方法用于打開一個網絡連接或者一個Unix套接字連接,也可以用來進行開放端口掃描。

PHP中怎么實現在線端口掃描功能

使用fsockopen()方法我們可以設計以下思路來實現開放端口檢測:

  • 1.獲取目標IP地址以及待掃描的端口列表。

  • 2.使用For循環遍歷帶掃描的端口數組,講目標IP地址與端口進行拼接。

  • 3.使用fsockopen()函數進行探測:通過Timeout參數進行判斷:若超過1s無響應則視作端口未開放。

  • 4.考慮到端口掃描功能的特殊性,可能會存在SSRF漏洞,因此需要對SSRF漏洞進行防護。

開放端口掃描實現出的代碼如下:

function getOpenPort($ip,$port){
    $msg = array('Ftp','Telnet','Smtp','Finger','Http','Pop3','Location Service','Netbios-NS','Netbios-DGM','Netbios-SSN','IMAP','Https','Microsoft-DS','MSSQL','MYSQL');
    foreach ($port as $key => $value){
        echo $value.'&ampnbsp&ampnbsp';
        echo $msg[$key].'&ampnbsp&ampnbsp';
        $fp = @fsockopen($ip,$value,$errno,$errstr,0.5);
        $result = $fp ? '<font color="#43CD80"><開啟></font><br>' : '<font color="#FF6347"><關閉></font><br>';
        echo $result;

針對于SSRF漏洞防護我們給出的方案是:創建IP黑名單,屏蔽內網IP,防止掃描內網IP地址

針對以上方案,我們寫出的防護代碼如下:

$blackHostlist = array("172.", "10.", "localhost", "127.", "192.");
foreach($blackHostlist as $blackHost){
    if(strpos($ip, $blackHost) === 0){
        echo '<script>alert("禁止掃描內網地址!");</script>';
        die();
    }
}

同時設計一個前端的表單來接受用戶傳送的參數:

# index.html
<form method="post" action="scan.php">
目標IP - IP Address:<input type="text" name="ip" id="domain"><br><br>
掃描端口 - Ports:<input type="test" name="port" value="21,23,25,79,80,110,135,137,138,139,143,443,445,1433,3306"><br><br>
開始掃描 - Start:<input type="submit" value="點擊開始掃描 - Scaning">
</form>

最終的PHP后端代碼如下:

<?php
    function getOpenPort($ip,$port){
        $msg = array('Ftp','Telnet','Smtp','Finger','Http','Pop3','Location Service','Netbios-NS','Netbios-DGM','Netbios-SSN','IMAP','Https','Microsoft-DS','MSSQL','MYSQL');
        foreach ($port as $key => $value){
            echo $value.'&ampnbsp&ampnbsp';
            echo $msg[$key].'&ampnbsp&ampnbsp';
            $fp = @fsockopen($ip,$value,$errno,$errstr,0.5);
           $result = $fp ? '<font color="#43CD80"><開啟></font><br>' : '<font color="#FF6347"><關閉></font><br>';
            echo $result;

    $url = $_POST['ip'];
    $port = $_POST['port'];
    $blackHostlist = array("172.", "10.", "localhost", "127.", "192.");
    foreach($blackHostlist as $blackHost){
        if(strpos($ip, $blackHost) === 0){
            echo '<script>alert("禁止掃描內網地址!");</script>';
            die();
        }
    }
    getOpenPort($ip,$port);

最終運行效果如下(前端UI進行了美化處理):

PHP中怎么實現在線端口掃描功能

上述就是小編為大家分享的PHP中怎么實現在線端口掃描功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

晋州市| 通化市| 娱乐| 扶绥县| 霍城县| 博客| 略阳县| 屏东市| 体育| 兰坪| 平顶山市| 长汀县| 南安市| 泾源县| 盐源县| 开封市| 靖宇县| 垦利县| 津市市| 耒阳市| 施甸县| 乌拉特后旗| 秦皇岛市| 长沙市| 西充县| 芒康县| 内乡县| 滨州市| 洛川县| 宜阳县| 宁阳县| 大安市| 宝山区| 茌平县| 海门市| 兴安盟| 双柏县| 静宁县| 赤水市| 罗江县| 岗巴县|