Поделиться через


Получение сведений с помощью GetIpStatistics

Функция GetIpStatisticsзаполняет указатель на структуру MIB_IPSTATS со сведениями о текущей статистике IP-адресов, связанной с системой.

Чтобы использовать getIpStatistics

  1. Объявите некоторые необходимые переменные.

    Объявите переменную DWORD dwRetval, которая будет использоваться для проверки вызовов функций на наличие ошибок. Объявите указатель на переменную MIB_IPSTATS с именем pStatsи выделите память для структуры. Проверьте, что память может быть выделена.

    MIB_IPSTATS  *pStats;
    DWORD        dwRetVal = 0;
    
    pStats = (MIB_IPSTATS*) malloc(sizeof(MIB_IPSTATS));
    
    if (pStats == NULL) {
        printf("Unable to allocate memory for MIB_IPSTATS\n");
    }
    
  2. Вызовите функцию GetIpStatistics с параметром pStats, чтобы получить статистику IP для локального компьютера. Проверьте наличие ошибок и верните значение ошибки в переменной DWORDdwRetval. При возникновении ошибки переменная dwRetval может использоваться для более обширной проверки ошибок и создания отчетов.

    dwRetVal = GetIpStatistics(pStats);
    if (dwRetVal != NO_ERROR) {
        printf("GetIpStatistics call failed with %d\n", dwRetVal);
    }
    
  3. Если вызов GetIpStatistics выполнен успешно, распечатайте некоторые данные в структуре MIB_IPSTATS, на которые указывает параметр pStats.

    printf("Number of interfaces:   %ld\n", pStats->dwNumIf);
    printf("Number of IP addresses: %ld\n", pStats->dwNumAddr);
    printf("Number of received datagrams:  %ld\n", pStats->dwInReceives);
    printf("NUmber of outgoing datagrams requested to transmit:  %ld\n", pStats->dwOutRequests);
    
  4. Освободить память, выделенную для структуры MIB_IPSTATS, на которую указывает параметр pStats. Это необходимо сделать после того, как приложение больше не нуждается в данных, возвращаемых параметром pStats.

    if (pStats)
        free(pStats);
    

Следующий шаг: извлечение информации с помощью GetTcpStatistics

Предыдущий шаг: управление IP-адресами с помощью AddIPAddress и DeleteIPAddress