2011-03-06 29 views
10

¿Cómo enumerar todas las interfaces de red actualmente disponibles en la computadora (incluyendo virtual, no conectado, loopback, etc.)?¿Cómo enumerar todas las interfaces de red disponibles?

Necesito saber su IP4/6, Máscara, Gateway, DNS, WINS, etc


Idioma: C++, WinAPI

Sistema: de Windows 2000 y superior (incluyendo Win7)

+1

Considere esta pregunta: http://stackoverflow.com/questions/3069082/porting-getifaddrs-to-win-xp –

Respuesta

5

Eche un vistazo a http://www.codeproject.com/KB/IP/netcfg.aspx. Es un ejemplo gigante de lo que quieres hacer.

+0

@bmarguliesm, eres el verdadero gurú de las redes! Muchas gracias. – Andrew

+0

Me doy cuenta de que esta es una antigua respuesta, pero ¿hay alguna posibilidad de que pueda editarla para que coincida con los nuevos estándares de calidad de SO? (es decir, no solo de enlace) –

+0

No tengo acceso a ventanas. Siéntase libre de hacerlo. – bmargulies

8

Parece que quiere una combinación de algunas funciones diferentes.

Para obtener una lista de adaptadores con sus direcciones/máscaras IPv4, servidores WINS asociados y servidores DNS, puede usar GetAdaptersInfo. Para obtener direcciones IPv6, puede usar GetAdaptersAddresses.

Según lo que está incluido en su "etc." es posible que también desee GetIfTable y GetIfEntry. GetIfTable obtiene una lista de adaptadores de red. GetIfEntry le brinda información sobre cada uno. Estos recuperan cosas como la cantidad de datos que se transmiten/recuperan a través de una interfaz en particular. También hay un GetIfTable2/GetIfEntry2 que son solo para Vista y más nuevos que obtienen más información.

Si falla la memoria, GetIfTable/GetIfEntry lista todos los interfaces de la máquina. GetAdaptersInfo solo funciona con los adaptadores "reales".

+0

+1 Gracias, Jerry. Extenderé la solución de @bmargulies con sus recomendaciones – Andrew

Cuestiones relacionadas