Melhor maneira de verificar se uma máquina está na rede corporativa

1

Estou escrevendo um script do Powershell para determinar se uma máquina está na rede corporativa. A máquina pode ou não estar no domínio, por isso quero verificar no nível "IP".

Escreveu alguma coisa para verificar fazendo ping de alguns servidores em algumas sub-redes diferentes (para correr o risco de alguém estar em outra sub-rede (externa) com um host no mesmo IP.)

Funciona, mas é um pouco lento, e não especialmente "à prova do futuro" - por ex. em 2 anos, quando eu descomissionar o servidor, ele irá quebrar.

Existe uma maneira de usar o sufixo dns que é fornecido pelo servidor dhcp local?

Basta indicar o que preciso verificar - posso descobrir o roteiro.

Ta,

Ben

    
por Ben 25.05.2010 / 21:42

4 respostas

3

Olhe para o WMI. A classe Win32_NetworkAdapterConfiguration informará as informações sobre o host, como o sufixo dns que possui e a partir do qual o servidor DHCP alocou um endereço IP.

    
por 25.05.2010 / 21:50
2

Humm, problema interessante ...

Meus US $ 3,50: crie uma entrada de DNS (como hey.look.im.on.the.internal.network.mycompany.com. IN A 127.0.0.1 ) no DNS interno com um TTL & 1 segundo; tente resolver isso.

Se existir (e corresponde ao IP, deve ser), então você está na rede interna. Se não você está em outro lugar. (Note que isso também tem um monte de problemas, mas parece um pouco melhor do que o método ping-around-the-network).

    
por 25.05.2010 / 21:49
1

Talvez o método mais simples seja procurar certas coisas que devem estar sempre disponíveis na LAN. por exemplo. A máquina do gateway e uma consulta DNS para algo que somente o servidor DNS local deve ser capaz de responder.

    
por 25.05.2010 / 23:43
1

Talvez não seja exatamente o que você quer, mas pode levá-lo até lá.

Script

    
por 26.05.2010 / 05:26