10

自宅のパブリックIPアドレスに継続的にpingを実行したいのですが、pingが失敗した場合は、tracerouteを実行して、失敗した場所を確認します。

私はここで行われたコメントに従おうとしています:

http://social.technet.microsoft.com/Forums/en-US/ITCG/thread/efc97c66-60a6-4fd7-8be4-4b454d040ce5

Windows互換が望ましいでしょう、batまたはvbsが最適です。

インターネット上のどこからでも、ホームネットワークへの接続が失われます。仕事からpingを開始し、pingがドロップすると、tracerouteを実行しましたが、IPに到達する前に失敗します。

モデム、ルーター、またはコンピューターではないことを証明するログファイルが必要です。

4

5 に答える 5

12
@echo off
set Address=google.com
:Loop
PING -n 5 127.0.0.1>nul
echo Pinging %Address%
%SystemRoot%\system32\ping.exe -n 1 %Address% | %SystemRoot%\system32\find.exe "TTL=" > NUL >> C:\pingtest\logfile.log
if %ERRORLEVEL% EQU 0 goto :Loop
echo Trace route %Address% at %date% %time% >> C:\pingtest\logfile.log
tracert %Address% >> C:\pingtest\logfile.log
goto Loop

他の誰かがこれを必要とする場合、これは私が最終的に行ったものです。基本的に、「Ping -n 127.0.0.1>Nul」は、5 秒ごとに宛先に ping を送信するように 5 秒のカウンターを追加することです。5 は、必要な値に変更できます。

Windows 7 には、ping が「192.168.1.5 からの応答: 宛先ホストに到達できません」のような結果になるというこの問題があります。したがって、エラーを出す代わりに、エラー レベル 1 ではなく、それ自体から応答を取得します。エラー レベル 1 を探す代わりに、"%SystemRoot%\system32\ping.exe -n 1 %Address で TTL の結果がないことを探すことにしました。 % | %SystemRoot%\system32\find.exe "TTL=" > NUL"

とにかく、ここでの他の回答は非常に似ていて、うまくいった可能性があると確信しているので、ランク付けしていますが、これを回答としてマークしています。

皆さんありがとう!

于 2011-07-26T22:31:16.963 に答える
5
@echo off
set Address=www.google.com
set LogDir=C:\pingtest
md %LogDir%
%SystemRoot%\explorer.exe "%LogDir%"
echo PingTest script to monitor network connection.  Control-C to exit.
echo Tests connection by pinging %Address%.  Logs to %LogDir%\logfile.log.
echo %date% %time% Initial tracert (trace route) to %Address% >> %LogDir%\logfile.log
tracert %Address% >> %LogDir%\logfile.log
:Loop
REM  5 second delay
PING -n 5 -w 1 127.0.0.1>nul
echo %date% %time% Pinging %Address%
echo %date% %time% Pinging %Address% >> %LogDir%\logfile.log
%SystemRoot%\system32\ping.exe -n 1 %Address% | %SystemRoot%\system32\find.exe "TTL=" > NUL
if %ERRORLEVEL% EQU 0 goto :Loop
echo %date% %time% PING ERROR - Tracing route to %Address%
echo %date% %time% PING ERROR - Tracing route to %Address% >> %LogDir%\logfile.log
tracert %Address% >> %LogDir%\logfile.log
goto Loop
于 2014-08-11T21:00:42.103 に答える
4

ping を試行し、失敗した場合は tracert を実行する単純なバッチ ファイルを作成できます。

setlocal
set host=www.bigpond.com
set logfile=nettest.log
echo %date% %time%>>%logfile%
ping %host%>>%logfile%
if ERRORLEVEL 1 tracert %host%>>%logfile
endlocal

ここには改良の余地がたくさんあります。

次に、5 分ごとまたは任意に実行するスケジュールされたタスクを作成します。

または、「スリープ」を含むループを含めることもできます。以下を使用するバッチ ファイルで Sleeping に貧乏人の睡眠があります。

choice /d y /t 5 > nul
于 2011-07-26T04:40:00.103 に答える
2
:LOOP
FOR /F "usebackq tokens=1" %%F IN (`ping localhost -n 1 -w 1 ^| find "Request"`) DO (
  IF "%%F"=="Request" (
    tracert localhost
  )
)>>log.txt
FOR /F "usebackq tokens=1-4 delims=:." %%G IN (`echo %time%`) DO IF %G%H GTR 1400 GOTO:EOF
GOTO LOOP

基本的に、これは dopingを示しています。単語のインスタンスを持つ行が見つかった場合Request(アドレスに ping を実行できない場合にのみ表示されます)、tracert を実行します。-nとの-wスイッチは、PING1 回だけジャンプし、1 秒間応答がない場合にタイムアウトするように指示します。ローカルホストに ping を実行している場合は、これで問題ありません。2 番目のFORステートメントは、停止点を持つことです。1400を、スクリプトを停止したい時間に変更します (もちろん軍事時間で)。

于 2011-07-26T17:31:01.070 に答える
0

VPNが有線接続でドロップし続ける理由を調査するために同じことを探していました.上記のバッチファイルの提案の1つを使用しました. また、ここでパッケージ化された素敵な小さなJavaアプリを見つけました Internet Connectivity Monitor

使いやすく、仕事をします:-)

于 2016-11-11T12:05:01.167 に答える