В Windows 7 (и, думаю, в Vista) сеть, к которой вы подключены, назначается как «местоположение», например Дом / Работа или Общественность.
Можно ли программно определить текущее местоположение сети?
Используя Windows API Code Pack , вы можете получить тот же список сетей, который показывает Windows, используя NetworkListManager.GetNetworks(NetworkConnectivityLevels.All).
NetworkListManager.GetNetworks(NetworkConnectivityLevels.All)
Затем в каждой сети есть свойство с именем Category, которое сообщает, является ли оно общедоступным или частным (дом / работа). Кажется, что нет никакого способа отличить «дом» и «работу».
Category