NetworkChange クラス
アセンブリ: System (system.dll 内)
構文
解説
NetworkChange クラスは、NetworkAddressChanged イベントを発生させることによって、アドレス変更通知を提供します。インターフェイス アドレスは、ネットワーク ケーブルが切断された、ワイヤレス LAN の範囲外に移動した、ハードウェア障害が発生したなど、多くの理由で変更されることがあります。
通知を受信するには、アプリケーションのイベント ハンドラを識別する必要があります。アプリケーションのイベント ハンドラは、イベントが発生するたびにアプリケーション固有のタスクを実行する 1 つ以上のメソッドです。NetworkAddressChanged イベントが発生したときに NetworkChange オブジェクトからイベント処理メソッドが呼び出されるようにするには、メソッドを NetworkAddressChangedEventHandler デリゲートに関連付け、このデリゲートをイベントに追加する必要があります。
アドレスの変更を待機し、NetworkAddressChanged イベントが発生したときにネットワーク インターフェイスのステータスを表示するコード例を次に示します。
Imports System Imports System.Net Imports System.Net.NetworkInformation Public Class NetworkingExample Public Shared Sub Main() AddHandler NetworkChange.NetworkAddressChanged, AddressOf AddressChangedCallback Console.WriteLine("Listening for address changes. Press any key to exit.") Console.ReadLine() End Sub 'Main Shared Sub AddressChangedCallback(sender As Object, e As EventArgs) Dim adapters As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces() Dim n As NetworkInterface For Each n In adapters Console.WriteLine(" {0} is {1}", n.Name, n.OperationalStatus) Next n End Sub End Class
using System; using System.Net; using System.Net.NetworkInformation; namespace Examples.Net.AddressChanges { public class NetworkingExample { public static void Main() { NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(AddressChangedCallback); Console.WriteLine("Listening for address changes. Press any key to exit."); Console.ReadLine(); } static void AddressChangedCallback(object sender, EventArgs e) { NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); foreach(NetworkInterface n in adapters) { Console.WriteLine(" {0} is {1}", n.Name, n.OperationalStatus); } } } }
#using <System.dll> using namespace System; using namespace System::Net; using namespace System::Net::NetworkInformation; void AddressChangedCallback( Object^ /*sender*/, EventArgs^ /*e*/ ) { array<NetworkInterface^>^adapters = NetworkInterface::GetAllNetworkInterfaces(); System::Collections::IEnumerator^ myEnum = adapters->GetEnumerator(); while ( myEnum->MoveNext() ) { NetworkInterface^ n = safe_cast<NetworkInterface^>(myEnum->Current); Console::WriteLine( " {0} is {1}", n->Name, n->OperationalStatus ); } } int main() { NetworkChange::NetworkAddressChanged += gcnew NetworkAddressChangedEventHandler( AddressChangedCallback ); Console::WriteLine( "Listening for address changes. Press any key to exit." ); Console::ReadLine(); }
System.Net.NetworkInformation.NetworkChange
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- NetworkChange クラスのページへのリンク