web-dev-qa-db-ja.com

バッチファイル-pingを使用したネットワーク接続のテスト

バッチファイルを使用すると、次のようなことが可能になります。

ping google.com

成功した場合はECHOを実行してくださいインターネットに接続しています

それ以外の場合はエコーを返しますインターネットに接続していません

9
Peter

次のスニペットを使用できます。

@echo off
Ping www.google.de -n 1 -w 1000
if errorlevel 1 echo Not connected
12
CSchulz

次のスクリプトは、インターネットがオフラインになるたびに、(システムクロックからの)時間と「インターネットオフライン」を繰り返しチェックし、C:\ Internet.txtにあるログファイルに書き込みます。残念ながら、ログファイルの最新の行は最後に表示されます-上部に表示する方法がわかりません;)

ところで:私は3Gドングル(2Gインターネットを使用)を使用していたため、待機時間(-w)を20秒に設定したので、インターネットが本当にダウンしているか、何か他の問題があったかどうかを確認する唯一の方法は20秒でした。 .. 5秒間5000に変更するか、「-w 20000」をすべて削除してデフォルトのままにしてください。

@echo off

:START

ping -n 4 4.2.2.2 -w 20000 >nul

if %errorlevel% == 1 (
  echo Internet offline >> C:\Internet.txt
  Time /t >> C:\Internet.txt
)

Timeout /t 30
@set errorlevel = 0

GOTO START
4
jfgoodhew1

以下は、それを開始するのに役立つスクリプトです。

http://www.techimo.com/forum/networking-internet/73769-handy-batch-file-check-network-connectivity.html

注:システムが英語でない場合は、findコマンドを使用してpingの出力からシステムの言語の対応する文字列にReply fromをフィルタリングするスクリプトの行を変更する必要があります。

1
Ozair Kafray

@CShulzからの回答に基づいて、接続がない場合にのみ「未接続」を出力するスクリプトを次に示します。それ以外の場合は、30秒ごとに静かにテストをループします。最初のpingは接続をテストし、問題がある場合はエラーメッセージを出力します。 2番目のpingは、localhostにpingすることにより、30秒の待機を追加します。

@echo off
:loop
ping www.google.com -n 1 -w 5000 > nul
if errorlevel 1 echo Not connected
ping -n 30 127.0.0.1 > nul
goto loop
1
user
@echo off
echo Checking connection
ping -n 1 www.google.com >nul
if errorlevel 1 (
  cls
  echo Failed
  pause>nul
  exit
)

cls
echo Success!
pause>nul
exit
1
12345
echo Testing Internet Connection of google.com
@echo off
:loop
ping google.com -n 1 -w 5000 > nul
if errorlevel 1 echo %date% - %time% Not connected >> pingtestlog.txt
ping -n 30 127.0.0.1 > nul
goto loop
0
askuse7
@echo off
:loop
ping www.google.com -n 1 -w 5000 >NUL
if errorlevel 1 echo Not connected
goto Loop
0
TOasT