2011-01-20 10 views
5

De acuerdo con este link, NetBIOS ya no se admite a partir de Windwos Vista. Efectivamente, ya no puedo ver ningún nombre de NetBIOS desde las propiedades de la red.Resuelva el nombre NetBIOS en Windows 7

Sin embargo, cuando estoy escribiendo códigos en mi Windows 7, todavía encuentro nombres de NetBIOS en muchos lugares. Por ejemplo

  1. Todavía puedo usar "MYDOMAIN \ Harvey" para iniciar sesión en mi máquina, donde creo que MYDOMAIN es un nombre de NetBIOS.
  2. Las variables de entorno COMPUTERNAME y USERDOMAIN siguen siendo nombres de NetBIOS. Espero ver nombres DNS aquí
  3. Los nombres de las instancias de mi SQL Server que aparecen en mi SQL Server Management Studio son algo así como MYMACHINE \ Instance1.

Supongo que Microsoft todavía mantiene algunas piezas para compatibilidad con versiones anteriores. Quiero entender cómo Windows 7 resolverá el nombre de NetBIOS en una dirección IP. Encontré este artículo que explica cómo funciona el NetBIOS name resolution, pero me temo que esto ya no es cierto en Windows 7. Al menos no hay un servidor WINS para mí.

Mi última pregunta es cómo hago la resolución de nombre de NetBIOS mediante programación, preferiblemente en C#. Estoy bien de usar PInvoke.

UDAPTE

Tridus era correcto. Puedo usar System.Net.Dns.GetHostAddresses ("nombre de host") para resolver el nombre de NetBIOS. Utilicé un reflector para ver qué pasa debajo del capó. Está llamando al gethostbyname() from ws2_32.dll

Here, explica que el nombre gethostby() hará la resolución del nombre NetBIOS.

  1. Compruebe el nombre de host local para un nombre coincidente.
  2. Compruebe el archivo Hosts para obtener una entrada de nombre coincidente.
  3. Si se configura un servidor DNS, inténtelo.
  4. Si no se encuentra ninguna coincidencia, intente la resolución del nombre NetBIOS.

Sobre el misterio de NetBIOS no soportados en este link, creo que sólo significa que no es compatible con la API. People in ServerFault cree que NetBIOS todavía es compatible con Windows 7.

+0

Sospecho que puede obtener más tracción sobre esto si estuviera en ServerFault. – bryanbcook

+0

@bryanbcook Teniendo en cuenta la última línea, sospecho que podría no ser el caso. :-) –

+0

@Harvey Kwok - Entonces, ¿su objetivo es determinar la dirección IP de una computadora en la red local en función del nombre de su computadora? – Justin

Respuesta

4

NetBIOS en sí mismo como el protocolo anterior podría no ser compatible, pero SMB/CIFS todavía lo es y es por eso \ hostname para compartir archivos y todavía funciona.

En cuanto a cómo resolver un nombre, yo era capaz de hacer esto:

System.Net.Dns.GetHostAddresses ("host")

Estoy en un dominio de lo que puede ser simplemente añadiendo un sufijo DNS y haciendo una búsqueda de DNS, pero funcionó para mí. Darle una oportunidad. :)

+0

Gracias por la pista :) –