В Windows реализована концепция определения местоположения сети (NLA), что означает, что вы можете настроить сеть как «публичную» (например, домашнюю/рабочую), «частную» и т. д.
Какую информацию он использует для «снятия отпечатков пальцев» сети с этой целью?
решение1
решение2
Источник:http://msdn.microsoft.com/en-us/library/ms740558%28VS.85%29.aspx
Осведомленность о местоположении сети (NLA)Поставщик услуг жизненно важен для компьютеров или устройств, которые могут перемещаться между различными сетями, а также для выбора оптимальных конфигураций, когда доступно более одной. Например, беспроводной компьютер, перемещающийся между физическими сетями, может использовать NLA для определения правильной конфигурации на основе информации о его доступном сетевом подключении. NLA также оказывается ценным, когда многосетевой компьютер имеет физическое подключение к одной сети, а также подключен к другой сети через коммутируемое соединение или туннель.
В прошлом разработчикам приходилось получать информацию о логическом сетевом интерфейсе и, следовательно, принимать решения о сетевом подключении на основе множества разрозненных сетевых данных. В таких обстоятельствах разработчикам приходилось выбирать подходящий сетевой интерфейс на основе IP-адреса, подсети интерфейса, имени системы доменных имен (DNS), связанного с интерфейсом, MAC-адреса сетевой карты, имени беспроводной сети или другой сетевой информации. NLA устраняет эту проблему, предоставляя стандартный интерфейс для перечисления информации о логическом сетевом подключении, соотнося ее с информацией о физическом сетевом интерфейсе, а затем предоставляя уведомление, когда ранее возвращенная информация становится недействительной.
NLA предоставляет следующую информацию о местоположении сети:
Логическая сетевая идентификация
NLA сначала пытается идентифицировать логическую сеть по ее доменному имени DNS. Если логическая сеть не имеет доменного имени, NLA идентифицирует сеть по пользовательской статической информации, хранящейся в реестре, и, наконец, по ее адресу подсети.
Логические сетевые интерфейсы
Для каждой сети, к которой подключен компьютер, NLA предоставляет AdapterName, который однозначно идентифицирует физический интерфейс, такой как NIC, или логический интерфейс, такой как соединение RAS. Затем AdapterName можно использовать с функциями, доступными в API IP Helper, для получения дополнительных характеристик интерфейса.
NLA реализует логическую сеть как класс обслуживания с ассоциированным классом GUID и свойствами. Каждая логическая сеть, для которой NLA возвращает информацию, является экземпляром этого класса обслуживания.
решение3
На основании недавних экспериментов (с Server 2012, но я подозреваю, что и более ранние версии работают аналогично) в статически настроенных сетях без домена служба NLA использует адрес канального уровня (MAC) шлюза по умолчанию для идентификации сети.
Подробности неясны, хотя я предполагаю, что их можно выяснить с помощью сетевого анализатора. Если настроенный шлюз по умолчанию не отвечает, NLA не распознает сеть, поэтому он определенно делает какой-то запрос. (То есть, вы не можете просто ввести фиктивный адрес шлюза или даже фиктивный адрес шлюза плюс статическую запись ARP; MAC-адрес шлюза, связанный с определенной сетью, должен фактически ответить, чтобы NLA решил, что адаптер подключен к этой сети.)
Смотрите такжемоя запись в блогео способе обмануть Windows 2012, заставив назначить адаптер уникальной сети.
Если адаптеру назначен адрес по DHCP, логика может быть иной. Я пока не изучал это. Логика в доменной сети задокументирована в соответствии с существующими ответами.