十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
利用 fsockopen() 函數(shù)怎么實(shí)現(xiàn)一個端口掃描器?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
利用 fsockopen() 函數(shù),編寫一個功能簡單的端口掃描器。
2、關(guān)鍵技術(shù)
本實(shí)例的端口號是固定的,通過對數(shù)組的遍歷,利用 fsockopen() 函數(shù)連接,如果連接成功,則該端口處于開放狀態(tài),否則該端口處于關(guān)閉狀態(tài)。
核心代碼如下:
foreach ($port as $key => $value) { echo ''; echo ' '; }' . $key . ' '; echo '' . $value . ' '; echo '' . $msg[$key] . ' '; //$errno 和 $errstr 在這里基本用不上,只是為了設(shè)置 timeout,防止請求超時 $fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主機(jī)(hostname)不可訪問,將會拋出一個警告級別(E_WARNING)的錯誤提示。所有需要加@ $result = $fp ? '開啟' : '關(guān)閉'; echo '' . $result . ' '; echo '