fsockopen() 関数はポート スキャナーを作成します
1. はじめに
この記事では、fsockopen() 関数を使用して、単純な関数を持つポート スキャナーを作成します。
2. 主要なテクノロジー
この例のポート番号は固定されており、接続が成功した場合は fsockopen() 関数を使用して接続されます。
コアコードは次のとおりです:
foreach ($port as $key => $value) { echo '<tr>'; echo '<td>' . $key . '</td>'; echo '<td>' . $value . '</td>'; echo '<td>' . $msg[$key] . '</td>'; //$errno 和 $errstr 在这里基本用不上,只是为了设置 timeout,防止请求超时 $fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主机(hostname)不可访问,将会抛出一个警告级别(E_WARNING)的错误提示。所有需要加@ $result = $fp ? '<span style="color:red">开启</span>' : '<span style="color:red">关闭</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='#'> 网址/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>服务</td> <td>开启状态</td> </tr> </thead> <tbody> <?php $ip = $_POST['ip'] ?? '127.0.0.1'; if(ip2long($ip)){ $aIp = explode('.', $ip);//ip4地址使用.分隔符 //这里没有对 0.0.0.0 这种本机地址进行判断,只是粗略的判断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, 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 '<tr>'; echo '<td>' . $key . '</td>'; echo '<td>' . $value . '</td>'; echo '<td>' . $msg[$key] . '</td>'; //$errno 和 $errstr 在这里基本用不上,只是为了设置 timeout,防止请求超时 $fp = @fsockopen($ip, $value, $errno, $errstr, 1);//如果主机(hostname)不可访问,将会抛出一个警告级别(E_WARNING)的错误提示。所有需要加@ $result = $fp ? '<span style="color:red">开启</span>' : '<span style="color:red">关闭</span>'; echo '<td>' . $result . '</td>'; echo '</tr>'; } ?> </tbody> </table> </body> </html>
4. ホスト名に基づいて接続を作成し、リソースを返します。オブジェクトが正常に実行され、失敗した場合は false が返されます。ホストが利用できない場合は、警告がスローされます
詳細については、http://php.net/manual/en/function.fsockopen.php
を参照してください。
以上がfsockopen() 関数はポート スキャナーを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック








![Windows PCでサウンドバーがモニター画面として検出される[修正]](https://img.php.cn/upload/article/000/465/014/170835733166289.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Windows PC では、HDMI ポートに接続するとサウンドバーがモニターとして認識されることに気付いたユーザーもいます。これにより混乱が生じる可能性がありますが、解決策はこれだけではありません。 HDMI 経由でサウンドバーを PC に接続する方法 ほとんどのサウンドバーは、HDMI、光学式、または 3.5mm オーディオ接続を使用します。サウンドバーが HDMI 接続のみをサポートしている場合は、HDMIARC というラベルの付いた HDMI ポートに接続する必要があります。多くのテレビやモニターには通常、複数の HDMI ポートが装備されており、そのうちの 1 つが HDMI 標準に準拠した ARC プロトコルをサポートしている必要があります。つまり、HDMI は音声と映像を送信するためのインターフェースですが、デバイスに HDMI ポートがない場合は、モニターの使用を検討してください。

Linux でリモート サーバーのポートが開いているかどうかを確認する方法: 1. 「nmap ip -p port」コマンドを使用して、ポートが開いているかどうかを確認します。具体的なコマンドは「nmap 172.17.193.18 -p 5902」などです。2 「nc -v ip port」コマンドを使用する ポートが開いているか確認します 具体的なコマンドは「nc -v 172.17.193.18 5902」です。

com1 と com2 はシリアル ポートと呼ばれるシリアル通信ポートです。マザーボードには通常、通信デバイスであるマウスを接続するために使用される 2 つの COM シリアル インターフェイスがあります。シリアル インターフェイスとは、データをビットごとに順次送信することを指します。通信が特徴 回路がシンプルで、一対の伝送線だけで双方向通信が可能です。

Win11でポート445を閉じるにはどうすればよいですか?ポート番号 445 は TCP ポート、共有フォルダおよびプリンタポートであり、LAN 内でファイルやプリンタの共有サービスを提供します。最近、一部の Win11 ユーザーがポート 445 を閉じたいと考えていますが、どうすればよいでしょうか?詳細な操作方法を知らない友人も多いと思いますが、Win11 でポート 445 を閉じるための詳細な操作を以下のエディターにまとめましたので、興味のある方はエディターをフォローして以下を読んでください。 Win11 でポート 445 を閉じる詳細な操作 1. まず、Win+S キーの組み合わせを押すか、下部のタスクバーの検索アイコンをクリックして Windows 検索ウィンドウを開き、上部に「Windows ファイアウォール」と入力し、指定された最適なオプションをクリックします。システムによって。

コンピューターを起動するたびに AHCI ポート 0 デバイス エラーが発生する場合は、この記事に記載されている方法に従って問題を解決する必要があります。 AHCIポート0デバイスエラーとは何ですか? AHCI デバイスのエラーは BIOS によって報告されます。 SMART は、ポート 0 のハード ドライブに障害があり、アクセスできない可能性があることを示しました。ハードドライブには、いつでも問題が発生する可能性があります。デスクトップ コンピューターの場合は、ハード ドライブの接続ポートを変更してみることをお勧めします。問題が解決しない場合は、ハードドライブ自体に問題がある可能性があります。この問題を解決するには、ディスク チェック ツールを実行し、障害が発生したハード ドライブを無効にし、ポートをチェックします。 Windows コンピュータでの AHCI ポート 0 デバイス エラーの修正 通常、AHCI ポート 0 デバイス エラーは、オペレーティング システムの問題が原因ではなく、ポート 0 でのハード ドライブの障害が原因で発生します。

iOS17の充電不具合の原因は? iOS17にアップデートした後にiPhoneが充電できなくなる理由はいくつか考えられます。可能性の 1 つは、ソフトウェア アップデートにバグがあることです。 Apple は通常、iOS アップデートのバグを迅速に修正するため、充電に関する問題が発生した場合は、新しいアップデートが利用可能かどうかを確認する価値があります。もう 1 つの可能性は、充電ケーブルまたはアダプターに問題があることです。サードパーティ製の充電ケーブルまたはアダプタを使用している場合は、それが Apple によって認定されていることを確認してください。 iPhone が充電できない問題を解決する方法 iOS17 アップデート後に iPhone が充電できない問題を解決する方法に関するヒントをいくつか紹介します: Apple 携帯電話を再起動します これにより、通常、iOS17 の充電問題の根本原因である可能性のある軽微な問題が解決されます

Docker マッピング ポート エラーの解決策: 1. root アカウントに切り替えます; 2. "netstat -nap" コマンドを使用して、実行中のプログラムの pid を確認します; 3. "kill -9 2901 su u260517" コマンドを使用して、プログラムを選択してプログラムを切り替えます。

LSOF (ListOpenFiles) は、主に Linux/Unix オペレーティング システムと同様のシステム リソースを監視するために使用されるコマンド ライン ツールです。 LSOF コマンドを使用すると、ユーザーはシステム内のアクティブなファイルと、これらのファイルにアクセスしているプロセスに関する詳細情報を取得できます。 LSOF は、ユーザーが現在ファイル リソースを占有しているプロセスを特定するのに役立ち、それによってシステム リソースの管理が改善され、起こり得る問題のトラブルシューティングが可能になります。 LSOF は強力かつ柔軟であり、システム管理者がファイル リーク、閉じられていないファイル記述子などのファイル関連の問題を迅速に特定するのに役立ちます。 LSOF コマンド経由 LSOF コマンド ライン ツールを使用すると、システム管理者と開発者は次のことを行うことができます。 ポートの競合が発生した場合に、どのプロセスが現在特定のファイルまたはポートを使用しているかを確認する
