Назад | Перейти на главную страницу

Лучший способ скриптовой проверки, находится ли машина в корпоративной сети

Я пишу сценарий Powershell, чтобы определить, находится ли машина в корпоративной сети. Машина может быть или не быть в домене, поэтому я хочу проверить на уровне «IP».

Написали что-то, что нужно проверить, выполнив pinging пару серверов в паре разных подсетей (чтобы избежать риска того, что кто-то окажется в другой (внешней) подсети с хостом на том же IP-адресе.)

Работает, но немного медленнее и не особо рассчитано на будущее - например, через 2 года, когда я выведу сервер из строя, он сломается.

Есть ли способ использовать суффикс dns, предоставляемый локальным сервером DHCP?

Просто укажите, что мне нужно проверить - я могу разобраться в сценарии.

Та,

Бен

Загляните в WMI. Класс Win32_NetworkAdapterConfiguration сообщит вам информацию о хосте, например, какой у него суффикс dns и у какого DHCP-сервера он арендовал IP-адрес.

Хм, интересная проблема ...

Мои 3,50 доллара за создание DNS-записи (например, hey.look.im.on.the.internal.network.mycompany.com. IN A 127.0.0.1) на вашем внутреннем DNS с 1-секундным TTL и попробуйте разрешить его.

Если он существует (и соответствует IP-адресу, который должен быть), значит, вы находитесь во внутренней сети. Если нет, то вы где-то еще. (Обратите внимание, что у этого тоже есть куча проблем, но он кажется немного лучше, чем метод ping-around-the-network).

Возможно, самый простой способ - это поискать определенные вещи, которые всегда должны быть доступны в локальной сети. например Шлюз и DNS-запрос для чего-то, на что должен быть способен ответить только локальный DNS-сервер.

Возможно, это не совсем то, что вам нужно, но это может привести вас к цели.

Сценарий