0

私はこれらすべてについて初心者ですので、お気軽にどうぞ。:) 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 
4

0 に答える 0