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