2009-06-01 10 views
5

Potrzebuję fragmentu kodu, który może wykryć, czy połączenie sieciowe jest podłączone lub odłączone. Stan połączenia oznaczałby podłączenie kabla do złącza Ethernet. Stan odłączenia oznaczałby, że nie jest podłączony kabel.Wykrywanie stanu sieci (połączone - rozłączone) w C#

Nie mogę korzystać z interfejsu WMI ze względu na fakt, że używam systemu Windows CE. Nie mam nic przeciwko wywołaniu interfejsu Win32 API, ale pamiętam, że używam Windows CE i działam na Compact Framework.

+0

Należy pamiętać, że połączenie sieciowe nie jest równe połączeniu z Internetem. Wygląda na to, że już to rozumiesz, ponieważ definiujesz połączone jako "kabel jest podłączony do połączenia Ethernet", ale to się powtarza. –

Odpowiedz

0

Jedną rzeczą do zapamiętania jest to, że połączenie sieciowe jest nie równym dostępem do Internetu.

Wygląda na to, że już to otrzymałeś, ponieważ definiujesz połączone jako "kabel jest podłączony do połączenia Ethernet", ale to się powtarza.

+0

Tak, rozumiem to. Naprawdę chcę wykryć stan połączenia "kablowego". –

+0

@ kelton52 Zgadzam się. Zasady zmieniły się od czerwca 2009 roku :) Dodałem komentarz, a usunę go za kilka minut. –

1

Zadzwoń pod GetAdaptersInfo i przeglądaj listę dostępnych kart sieciowych, aż znajdziesz tę, której szukasz?

4

Najprostszym sposobem jest użycie numeru OpenNETCF's SDF i przejrzenie OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher class, który będzie wywoływał zdarzenia, gdy NDIS wysyła powiadomienia (takie jak MEDIA_CONNECT i MEDIA_DISCONNECT).

Oczywiście można wykonać tę samą pracę bez SDF. Polega on na bezpośrednim zainicjowaniu sterownika NDIS i wywołaniu IOCTL_NDISUIO_REQUEST_NOTIFICATION za pomocą uchwytu kolejki komunikatów P2P. Nie jest to zbyt trudne, ale jest wiele rzeczy, które trzeba zrobić, żeby działały, a nie przeciekały.

+0

Witam, pobrałem 2,3 plików binarnych z https://opennetcf.codeplex.com/releases/view/137461, ale nie mogę znaleźć elementu AdapterStatusMonitor w przestrzeni nazw OpenNETCF.Net ... Czy brakuje mi czegoś? Dzięki! – franDayz

+1

Zapoznaj się z 'NetworkInterfaceWatcher' http://opennetcf.codeplex.com/SourceControl/latest#OpenNETCF.Net/OpenNETCF.Net/NetworkInformation/NetworkInterfaceWatcher.cs – ctacke

Powiązane problemy