真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP中怎么實現(xiàn)在線端口掃描功能

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)PHP中怎么實現(xiàn)在線端口掃描功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們提供的服務(wù)有:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、海安ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的海安網(wǎng)站制作公司

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

PHP中怎么實現(xiàn)在線端口掃描功能

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

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

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

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

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

開放端口掃描實現(xiàn)出的代碼如下:

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.'&nbsp&nbsp';
        echo $msg[$key].'&nbsp&nbsp';
        $fp = @fsockopen($ip,$value,$errno,$errstr,0.5);
        $result = $fp ? '<開啟>
' : '<關(guān)閉>
';         echo $result;

針對于SSRF漏洞防護我們給出的方案是:創(chuàng)建IP黑名單,屏蔽內(nèi)網(wǎng)IP,防止掃描內(nèi)網(wǎng)IP地址

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

$blackHostlist = array("172.", "10.", "localhost", "127.", "192.");
foreach($blackHostlist as $blackHost){
    if(strpos($ip, $blackHost) === 0){
        echo '';
        die();
    }
}

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

# index.html

目標IP - IP Address:

掃描端口 - Ports:

開始掃描 - Start:

最終的PHP后端代碼如下:

 $value){
            echo $value.'&nbsp&nbsp';
            echo $msg[$key].'&nbsp&nbsp';
            $fp = @fsockopen($ip,$value,$errno,$errstr,0.5);
           $result = $fp ? '<開啟>
' : '<關(guān)閉>
';             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 '';             die();         }     }     getOpenPort($ip,$port);

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

PHP中怎么實現(xiàn)在線端口掃描功能

上述就是小編為大家分享的PHP中怎么實現(xiàn)在線端口掃描功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享標題:PHP中怎么實現(xiàn)在線端口掃描功能
轉(zhuǎn)載來于:http://weahome.cn/article/jhedgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部