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


Создание базового вспомогательного приложения ДЛЯ IP-адресов

Создание базового вспомогательного приложения IP-адресов

  1. Создайте пустой проект.

  2. Добавьте в проект пустой исходный файл C++.

  3. Убедитесь, что среда сборки ссылается на каталоги Include, Lib и Src пакета SDK.

  4. Убедитесь, что среда сборки связана с файлом вспомогательной библиотеки IP-адресов Iphlpapi.lib и файлом библиотеки Winsock WS2_32.lib.

    Примечание

    Некоторые базовые функции Winsock используются для возврата значений IP-адресов и других сведений.

     

  5. Начните программирование вспомогательного приложения IP-адресов. Используйте API вспомогательного IP-адреса, включив файл заголовка вспомогательного ip-адреса.

    #include <winsock2.h>
    #include <iphlpapi.h>
    #include <stdio.h>
    
    int main() {
      return 0;
    }
    
    

    Примечание

    Файл заголовка Iphlpapi.h необходим для приложений, использующих вспомогательные функции IP. Файл заголовка Iphlpapi.h автоматически включает другие файлы заголовков со структурами и перечислениями, используемыми вспомогательными функциями IP.

    Новые вспомогательные функции IP-адресов, появившиеся в Windows Vista и более поздних версиях, определяются в файле заголовка Netioapi.h , который автоматически включается в файл заголовка Iphlpapi.h . Файл заголовка Netioapi.h никогда не следует использовать напрямую.

    Многие структуры и перечисления, используемые вспомогательными функциями IP, определены в файлах заголовков Iprtrmib.h, Ipexport.h и Iptypes.h . Эти файлы заголовков автоматически включаются в файл заголовка Iphlpapi.h и никогда не должны использоваться напрямую.

    В пакете средств разработки программного обеспечения (SDK) Microsoft Windows, выпущенных для Windows Vista и более поздних версий, организация файлов заголовков изменилась. Некоторые структуры теперь определены в файлах заголовков Ipmib.h, Tcpmib.h и Udpmib.h , а не в файле заголовка Iprtrmib.h . Файл заголовка Ipmib.h автоматически включает файл заголовка Ifmib.h . Обратите внимание, что эти файлы заголовков автоматически включаются в файл iprtrmib.h, который автоматически включается в файл заголовка Iphlpapi.h .

    Файл заголовка Winsock2.h для Windows Sockets 2.0 требуется большинству приложений, использующих ВСПОМОГАТЕЛЬНЫЕ API IP. Если требуется файл заголовка Winsock2.h , #include строка для этого файла должна располагаться перед строкой #include файла заголовка Iphlpapi.h .

    Файл заголовка Winsock2.h внутренне включает основные элементы из файла заголовка Windows.h , поэтому обычно #include строки для файла заголовка Windows.h в вспомогательных приложениях по IP-адресу отсутствует. Если для файла заголовка Windows.h требуется строка #include, ей следует предшествовать макрос #define WIN32_LEAN_AND_MEAN. По историческим причинам заголовок Windows.h по умолчанию включает файл заголовка Winsock.h для Windows Sockets 1.1. Объявления в файле заголовка Winsock.h для Windows Sockets 1.1 будут конфликтовать с объявлениями в файле заголовка Winsock2.h , требуемом для Windows Sockets 2.0. Макрос WIN32_LEAN_AND_MEAN предотвращает включение файла заголовка Winsock.h в файл заголовка Windows.h . Ниже приведен пример, демонстрирующий это.

     

    #ifndef WIN32_LEAN_AND_MEAN
    #define WIN32_LEAN_AND_MEAN
    #endif
    
    #include <windows.h>
    
    #include <winsock2.h>
    #include <iphlpapi.h>
    #include <stdio.h>
    
    int main() {
      return 0;
    }
    
    

    Примечание

    Это базовое вспомогательное приложение использует только некоторые структуры данных IP-адресов и IP-адреса для функций преобразования строк из Windows Sockets 2.0. Эти функции Windows Sockets можно использовать без вызова WSAStartup для инициализации ресурсов Windows Sockets и WSACleanup при использовании этих ресурсов.

    В вспомогательных приложениях IP-адресов, которые используют другие функции Winsock, отличные от этих IP-адресов для строковых функций, необходимо вызвать функцию WSAStartup для инициализации ресурсов Windows Sockets перед вызовом любых функций Windows Sockets, а WSACleanup следует вызывать, когда приложение завершает работу с ресурсами Windows Sockets.

     

    Примечание

    Файл заголовка Stdio.h необходим для использования различных стандартных функций C в этом базовом вспомогательном приложении IP-адресов.

     

    Следующий шаг. Получение сведений с помощью GetNetworkParams