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