コマンドプロンプト等で、WIFIの"ネット接続"が有効かチェックする方法はありますでしょうか。

テザリングでノートPCをつなぎ、コマンドプロンプトにて
netsh wlan show interfaces にて、特定文字の有無でWIFI自体のオンオフはチェック出来ましたが、そうではなく親機とはWIFIで通信環境にあっても、親機自体がネットに繋がっていなければインターネットは出来ないので、その接続中のWIFI自体がインターネットにつながっているものなのかどうなのかをチェックする方法は御座いますでしょうか。

ブラウザで特定サイトを開いて、というのも可能ではあるのですが、PING送信というのでしょうか、あまり詳しくはないのですが、ササッと通信してみて確認する軽い早い処理がありましたら教えて下さい。

なければブラウザ起動で行こうと思います。

コマンドプロンプトと指定は無いのですが、UWSCというWin用のマクロ言語で使いたく、その言語ではコマンドプロンプトを扱えるため、そう記述させて頂きました。

何卒よろしくお願い致します。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2016/03/30 17:44:32
  • 終了:2016/03/31 17:37:28

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4367ベストアンサー獲得回数18032016/03/31 16:45:15

ポイント250pt

Webページの巡回の前に接続確認ってことですよね。
WSH で VBScript を使うのではどうでしょう。

こんな感じのスクリプトを、例えば check_http.vbs とかに書いておいて、

url = "http://www.yahoo.co.jp/"

Set xhr = CreateObject("MSXML2.ServerXMLHTTP")
xhr.Open "HEAD", url, False
xhr.Send
If xhr.Status < 400 Then
    WScript.Echo "OK"
Else
    WScript.Echo "NG"
End If

コマンドは、こうです。

cscript //nologo check_http.vbs

相手と応答が取れると、標準出力に "OK" と出します(ダメなら "NG")。

HEAD というコマンドは、HTTP のヘッダだけを返すだけで HTML の内容を返しません。
ブラウザ起動するよりは、かなり軽いです。

url は Yahoo! のトップページにしてますが、巡回目的ならそこのページの方が適切かもしれません。

もし、バッチの ERRORLEVEL でのやり取りのイメージならこんなスクリプトになります。

url = "http://www.yahoo.co.jp/"

Set xhr = CreateObject("MSXML2.ServerXMLHTTP")
xhr.Open "HEAD", url, False
xhr.Send
If xhr.Status < 400 Then
    WScript.Quit(0)
Else
    WScript.Quit(1)
End If

成功すると 0 、失敗だと 1 を返します。
変えているのは最後だけです。

判定は UWSC 側でやるなら xhr.Status そのものをやり取りしても良いかもしれません。


あ、でも UWSC って OLE 使えるんでしたよね。

このサンプルが一番近いです。
http://www.uwsc.info/sample.html#N43

GET ではなく HEAD を使って、responseXML ではなく Status で判定するようにしたら、
HTTP 接続ができるかどうかの関数になると思います。

Function CheckHttp(url)
  oHttp = CreateOLEObj("MSXML2.XMLHTTP")
  oHttp.Open("HEAD", url, 0)
  oHttp.Send
  Ifb oHttp.Status < 400  Then
    Result = True
  Else
    Result = False
  EndIf
Fend
他5件のコメントを見る
id:a-kuma3

質問では、ルーターと WiFi でつながっているけれど、ルータがプロバイダに接続していないとか、プロバイダには接続しているけれどサイトが応答してない、という状況だと思います。
コメントで書かれているのは、PC から直接ダイアルアップなのですね。

もう、ダイアルアップの環境が無いので試してませんが、ダイアルアップは接続開始から接続確立までかなり時間がかかります。
タイムアウトの時間もかなり長いと思います。
接続確立まで待っている状態なんじゃないかと思います。

2016/04/01 23:40:14
id:iori753

>質問では、ルーターと WiFi でつながっている
確かにそうでした、別のところに使うパーツと勘違いしておりましたm(__)m
お教えいただいたものでたしかにやりたいことが出来たのでした汗

本当にありがとうございます!!

2016/04/02 00:27:41

その他の回答(1件)

id:freemann No.1

freemann回答回数302ベストアンサー獲得回数462016/03/30 19:36:00

ポイント50pt

次のコマンドでどうでしょうか。

ping www.google.co.jp
id:iori753

ありがとうございます!
これも使えそうで、テキストファイルに出力&UWSCでファイルオープンで行けそうだったのですが、他の方の回答がそのままコピペで使えてとても便利でしたので、そちらをBAにさせて頂きますが、ありがとうございましたm(__)m

2016/03/31 17:37:05
id:a-kuma3 No.2

a-kuma3回答回数4367ベストアンサー獲得回数18032016/03/31 16:45:15ここでベストアンサー

ポイント250pt

Webページの巡回の前に接続確認ってことですよね。
WSH で VBScript を使うのではどうでしょう。

こんな感じのスクリプトを、例えば check_http.vbs とかに書いておいて、

url = "http://www.yahoo.co.jp/"

Set xhr = CreateObject("MSXML2.ServerXMLHTTP")
xhr.Open "HEAD", url, False
xhr.Send
If xhr.Status < 400 Then
    WScript.Echo "OK"
Else
    WScript.Echo "NG"
End If

コマンドは、こうです。

cscript //nologo check_http.vbs

相手と応答が取れると、標準出力に "OK" と出します(ダメなら "NG")。

HEAD というコマンドは、HTTP のヘッダだけを返すだけで HTML の内容を返しません。
ブラウザ起動するよりは、かなり軽いです。

url は Yahoo! のトップページにしてますが、巡回目的ならそこのページの方が適切かもしれません。

もし、バッチの ERRORLEVEL でのやり取りのイメージならこんなスクリプトになります。

url = "http://www.yahoo.co.jp/"

Set xhr = CreateObject("MSXML2.ServerXMLHTTP")
xhr.Open "HEAD", url, False
xhr.Send
If xhr.Status < 400 Then
    WScript.Quit(0)
Else
    WScript.Quit(1)
End If

成功すると 0 、失敗だと 1 を返します。
変えているのは最後だけです。

判定は UWSC 側でやるなら xhr.Status そのものをやり取りしても良いかもしれません。


あ、でも UWSC って OLE 使えるんでしたよね。

このサンプルが一番近いです。
http://www.uwsc.info/sample.html#N43

GET ではなく HEAD を使って、responseXML ではなく Status で判定するようにしたら、
HTTP 接続ができるかどうかの関数になると思います。

Function CheckHttp(url)
  oHttp = CreateOLEObj("MSXML2.XMLHTTP")
  oHttp.Open("HEAD", url, 0)
  oHttp.Send
  Ifb oHttp.Status < 400  Then
    Result = True
  Else
    Result = False
  EndIf
Fend
他5件のコメントを見る
id:a-kuma3

質問では、ルーターと WiFi でつながっているけれど、ルータがプロバイダに接続していないとか、プロバイダには接続しているけれどサイトが応答してない、という状況だと思います。
コメントで書かれているのは、PC から直接ダイアルアップなのですね。

もう、ダイアルアップの環境が無いので試してませんが、ダイアルアップは接続開始から接続確立までかなり時間がかかります。
タイムアウトの時間もかなり長いと思います。
接続確立まで待っている状態なんじゃないかと思います。

2016/04/01 23:40:14
id:iori753

>質問では、ルーターと WiFi でつながっている
確かにそうでした、別のところに使うパーツと勘違いしておりましたm(__)m
お教えいただいたものでたしかにやりたいことが出来たのでした汗

本当にありがとうございます!!

2016/04/02 00:27:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません