fsockopen() 函數製作連接埠掃描器

大家讲道理
發布: 2023-03-15 12:10:01
原創
1828 人瀏覽過


1、前言

本文利用 fsockopen() 函數,寫出一個簡單的連接埠掃描器。

2、關鍵技術

本實例的連接埠號碼是固定的,透過對陣列的遍歷,利用fsockopen() 函數連接,如果連接成功,則該連接埠處於開放狀態,否則該連接埠處於關閉狀態。

核心程式碼如下:

foreach ($port as $key => $value) { echo ''; echo '' . $key . ''; echo '' . $value . ''; echo '' . $msg[$key] . ''; //$errno 和 $errstr 在这里基本用不上,只是为了设置 timeout,防止请求超时 $fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主机(hostname)不可访问,将会抛出一个警告级别(E_WARNING)的错误提示。所有需要加@ $result = $fp ? '开启' : '关闭'; echo '' . $result . ''; echo ''; }
登入後複製

3、程式碼如下

    端口扫描  
网址/ip:
$value) { if($value < 0 || $value > 255){ die('地址不合法'); } } } $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' ); //无论使用prot还是msg循环都是可以的,因为$key是对应的,都是索引数组 foreach ($port as $key => $value) { echo ''; echo ''; echo ''; echo ''; //$errno 和 $errstr 在这里基本用不上,只是为了设置 timeout,防止请求超时 $fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主机(hostname)不可访问,将会抛出一个警告级别(E_WARNING)的错误提示。所有需要加@ $result = $fp ? '开启' : '关闭'; echo ''; echo ''; } ?>
id 端口号 服务 开启状态
' . $key . '' . $value . '' . $msg[$key] . '' . $result . '
登入後複製

4、主要函數介紹

4.1、fsockopen

根據一個主機名稱來建立一個連接,成功返回一個資源對象,失敗返回false;主機不可用是拋出一個警告

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

#

以上是fsockopen() 函數製作連接埠掃描器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!