Откриване на състоянието на мрежата (свързан - прекъснат) в C#

Имам нужда от част от код, който може да открие дали мрежовата връзка е свързана или прекъсната. Свързаното състояние би означавало, че кабелът е включен в Ethernet връзката. Прекъснато състояние би означавало, че няма свързан кабел.

Не мога да използвам WMI интерфейса поради факта, че работя с Windows CE. Нямам нищо против да извикам Win32 API, но не забравяйте, че използвам Windows CE и работя на Compact Framework.


person Bobby Cannon    schedule 01.06.2009    source източник
comment
Едно нещо, което трябва да запомните е, че мрежовата връзка не е равна на интернет връзка. Звучи сякаш вече разбирате това, защото дефинирате свързан като означаващ, че кабел е включен в Ethernet връзката, но си струва да го повторите.   -  person Joel Coehoorn    schedule 19.02.2014


Отговори (4)


Вижте тази статия в MSDN:

Тестване за и отговаряне на мрежови връзки в .NET Compact Framework

person TWA    schedule 01.06.2009
comment
Решението, към което сочи връзката, няма да открие дали има кабел или не - то открива дали хостът е достъпен. Както отбелязва Джоел, това са две напълно различни неща. - person ctacke; 02.06.2009

Най-лесният начин е да използвате SDF на OpenNETCF и да погледнете OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher клас, който ще генерира събития, когато NDIS изпраща известия (като MEDIA_CONNECT и MEDIA_DISCONNECT).

Можете да вършите същата работа без SDF, разбира се. Това включва директно свързване на NDIS драйвера и извикване на IOCTL_NDISUIO_REQUEST_NOTIFICATION с P2P съобщение манипулатор на опашка. Не е много трудно, но има много неща, които трябва да оправите, за да работи и да не изтече.

person ctacke    schedule 01.06.2009
comment
Здравейте, изтеглих двоични файлове 2.3 от opennetcf.codeplex.com/releases/view/137461 но не мога да намеря AdapterStatusMonitor в OpenNETCF.Net Namespace... Пропускам ли нещо? Благодаря! - person franDayz; 05.02.2016
comment
Разгледайте NetworkInterfaceWatcher opennetcf.codeplex. com/SourceControl/latest#OpenNETCF.Net/ - person ctacke; 06.02.2016

Обадете се на GetAdaptersInfo и прегледайте списъка с налични мрежови адаптери, докато намерите този, който търсиш?

person Tom van Enckevort    schedule 01.06.2009

Едно нещо, което трябва да запомните е, че мрежовата връзка не е равна на интернет връзка.

Изглежда, че вече разбирате това, защото дефинирате свързано като означаващо „кабелът е включен в Ethernet връзката“, но си струва да го повторите.

person Community    schedule 01.06.2009
comment
Да, разбирам това. Наистина искам просто да открия състоянието на кабелната връзка. - person Bobby Cannon; 01.06.2009
comment
@kelton52 Съгласен. Правилата са променени от юни 2009 :) Добавих коментара и ще го изтрия след няколко минути. - person Joel Coehoorn; 19.02.2014