私はこれらすべてについて初心者ですので、お気軽にどうぞ。:) PortQry スクリプトを作成しようとしています。これは、ファイルからいくつかのリモート IP アドレスをチェックして、特定の TCP ポートを開いたり閉じたりします。その Windows サーバーからは、サードパーティのツール (MS 以外) を実行することは許可されていないため、何らかのバッチ スクリプトを使用するしかありません。
背景: 複数の携帯電話会社の sim カードで動作するデバイスがあります。すべての IP SIM カード アドレスは内部 (10.*) であり、デバイスは特定のポートを使用します。デバイスが動作していない場合は、ping だけでなく、ポートが動作しているかどうかも確認する必要があります。ポートがないと、デバイスとの接続を確立できません。したがって、このスクリプトは監視目的ではなく、純粋な診断目的で使用する予定です。
スクリプトが実行される同じフォルダーには、次のファイルがあります。
- "portqry.exe";
- IP アドレスを含む「ip.txt」。各アドレスは新しい行にあります。
期待される結果
ウィンドウには、次のような形式で結果が表示されます: IP、ポート、リッスン (開いている) またはリッスンしていない (閉じている)。
ポートが開かれている IP アドレスは、各 IP が新しい行にある「alive.txt」に保存する必要があります。
ポートが閉じられている IP アドレスは、各 IP が新しい行にある「dead.txt」に保存する必要があります。
今すぐ結果
「dead.txt」に保存されたすべての IP アドレス
オンウィンドウは、IPが表示されるたびに繰り返し表示されます
次の名前のターゲット システムを照会しています: ip.txt 現在 IP アドレスに解決しようとしています
バットファイルのコード:
@echo off
set file=portqry.exe
set iplist=ip.txt
:readfile
for /f "tokens=1-2 delims=:" %%V in (%iplist%) do call :chkport %%V
goto end
:chkport
set ip=%1
portqry -n %ip% -e 5432 -p TCP
if %ERRORLEVEL%==0 echo %IP% >>alive.txt
if NOT %ERRORLEVEL%==0 echo %IP% >>dead.txt
set ip=
goto end
:end