#!/bin/bash WGET="/usr/bin/wget" $WGET -q --tries=10 --timeout=5 http://www.google.com -O /tmp/index.google &> /dev/null if [ ! -s /tmp/index.google ];then echo "no" else echo "yes" fi
0
0
最近、新しいクライアントから、サーバーにインターネット接続があるかどうかを監視するWindowsサービスの開発を依頼されました。 ネットワークと共有センターに表示されているように、接続が「ローカルのみ」になり、「インターネットアクセス」に戻ると、サービスはログに記録する必要があります。
私の元々のアイデアは、5分ごとにGoogleのようなウェブサイトにサービスをpingすることでしたが、pingの結果を取得する方法がわからないので、WebBrowserコントロールをコーディングしてログを書き込むことができると考えましたその接続試行の結果に基づくエントリ。
しかし、これもかなり非現実的なアイデアのように思えるので、だれかがこれに取り組む最善の方法を提案できますか?
3 回答
1
Windowsで作業しているので、これを試すことができます。 http://www.go4expert.com/forums/showthread.php?t=2557
Linuxの場合は、単純なbachスクリプトが仕事をします。
#!/bin/bash WGET="/usr/bin/wget" $WGET -q --tries=10 --timeout=5 http://www.google.com -O /tmp/index.google &> /dev/null if [ ! -s /tmp/index.google ];then echo "no" else echo "yes" fi
1
https://stackoverflow.com/questions/2101041/capturing-network-status-change-event [この回答]、https://stackoverflow.com/questions/314213/checking-network-status-in-をご覧くださいc [this] and …
おそらくWinAPI funcs InternetGetConnectedStateおよびhttp://msdn.microsoft.com/en-us/を使用できます。 library / aa384346(v = VS.85).aspx [InternetCheckConnection]
http://pinvoke.net [pinvoke.net]で見つけることができるそれらの正しい宣言
0
これは古いスレッドです… 非常に古い.. しかし、これが誰かを助けることを願っています。
If My.Computer.Network.Ping("192.168.0.254") Then
'online
Else
'offline
End If