SELECT * FROM Win32_PerfFormattedData_Tcpip_IP
SELECT * FROM Win32_PerfFormattedData_Tcpip_TCP
SELECT * FROM Win32_PerfFormattedData_Tcpip_UDP
SELECT * FROM Win32_PerfFormattedData_Tcpip_ICMP
SELECT * FROM Win32_PerfFormattedData_Tcpip_Networkinterface
Estas clases están disponibles en Windows XP o posterior. Es posible que tenga que renunciar a las clases coincidentes “Win32_PerfRawData” en Windows 2000 y hacer un poco más de matemáticas antes de poder mostrar el resultado.
Lo vi, pero no me quedó muy claro. Lo miraré de nuevo. Gracias.
– usuario3731622
16/10/2015 a las 20:09
Un buen lugar para comenzar con las estadísticas de red sería el GetIpStatistics llame a las funciones de Windows IPHelper.
Hay un par de otros enfoques que posiblemente sean más portátiles: –
SNMP. Requiere que SNMP esté habilitado en la computadora, pero obviamente también se puede usar para recuperar estadísticas para computadoras remotas.
Canalice la salida de ‘netstat’ en su aplicación y elimine los valores del texto.
La salida de netstat es específica de la configuración regional y de la versión. Buena pinta con eso. 😀
– Tomalak
21 de octubre de 2008 a las 15:10
Jeje. Bueno, aún podría ser más fácil que hacer que SNMP funcione correctamente… 😉
– Roddy
21 de octubre de 2008 a las 19:19
Déjame responderme a mí mismo, ya que pregunté lo mismo en otro foro.
WMI es bueno, pero es más fácil usar IpHlpApi en su lugar:
#include <winsock2.h>
#include <iphlpapi.h>
int main(int argc, char *argv[])
{
PMIB_IFTABLE pIfTable;
MIB_IFROW ifRow;
PMIB_IFROW pIfRow = &ifRow;
DWORD dwSize = 0;
// first call returns the buffer size needed
DWORD retv = GetIfTable(pIfTable, &dwSize, true);
if (retv != ERROR_INSUFFICIENT_BUFFER)
WriteErrorAndExit(retv);
pIfTable = (MIB_IFTABLE*)malloc(dwSize);
retv = GetIfTable(pIfTable, &dwSize, true);
if (retv != NO_ERROR)
WriteErrorAndExit(retv);
// Get index
int i,j;
printf("\tNum Entries: %ld\n\n", pIfTable->dwNumEntries);
for (i = 0; i < (int) pIfTable->dwNumEntries; i++)
{
pIfRow = (MIB_IFROW *) & pIfTable->table[i];
printf("\tIndex[%d]:\t %ld\n", i, pIfRow->dwIndex);
printf("\tInterfaceName[%d]:\t %ws", i, pIfRow->wszName);
printf("\n");
printf("\tDescription[%d]:\t ", i);
for (j = 0; j < (int) pIfRow->dwDescrLen; j++)
printf("%c", pIfRow->bDescr[j]);
printf("\n");
...
Eso es lo que sugerí antes. Luego deberá llamar a GetIpStatistics para obtener las estadísticas que desea.
– Roddy
21 de octubre de 2008 a las 19:17
@Roddy no, las estadísticas de “netstat -e” solo necesitan llamar a GetIfTable, +1 para Denes
En la plataforma Windows, la información de netstat se puede recuperar llamando a las funciones GetTcpTable y GetUdpTable en la API auxiliar de IP o IPHLPAPI.DLL. La información devuelta incluye direcciones IP locales y remotas, puertos locales y remotos y (para GetTcpTable) códigos de estado TCP. Además de la herramienta de línea de comandos netstat.exe que se incluye con Windows, existen programas netstat basados en GUI disponibles. En la plataforma Windows, este comando está disponible solo si el protocolo de Internet (TCP/IP) está instalado como componente en las propiedades de un adaptador de red en Conexiones de red.
Ver Grupos de Google, el código fuente original de netstats se ha publicado muchas veces (win32 api)
Laisvis Lingvevicius
Como sugieren las respuestas anteriores, los contadores de rendimiento de WMI contienen algunos datos. Solo tenga en cuenta que en versiones posteriores de Windows, los contadores de rendimiento se desglosan en v4 vs v6, por lo que las consultas son:
SELECCIONE * DESDE Win32_PerfFormattedData_Tcpip_IPv4
SELECCIONE * DESDE Win32_PerfFormattedData_Tcpip_TCPv4
SELECCIONE * DESDE Win32_PerfFormattedData_Tcpip_UDPv4
SELECCIONE * DESDE Win32_PerfFormattedData_Tcpip_ICMP
SELECCIONE * DESDE Win32_PerfFormattedData_Tcpip_IPv6
SELECCIONE * DESDE Win32_PerfFormattedData_Tcpip_TCPv6
SELECCIONE * DESDE Win32_PerfFormattedData_Tcpip_UDPv6
SELECCIONE * DESDE Win32_PerfFormattedData_Tcpip_ICMPv6
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información