Criando um aplicativo auxiliar de IP básico
Para criar um aplicativo auxiliar de IP básico
Crie um novo projeto vazio.
Adicione um arquivo de origem C++ vazio ao projeto.
Verifique se o ambiente de build refere-se aos diretórios Include, Lib e Src do SDK (Platform Software Development Kit).
Verifique se o ambiente de build é vinculado ao arquivo iphlpapi.lib e ao arquivo da Biblioteca Winsock WS2_32.lib.
Observação
Algumas funções básicas do Winsock são usadas para retornar valores de endereço IP e outras informações.
Comece a programar o aplicativo Auxiliar de IP. Use a API auxiliar de IP incluindo o arquivo de cabeçalho do Auxiliar de IP.
#include <winsock2.h> #include <iphlpapi.h> #include <stdio.h> int main() { return 0; }
Observação
O arquivo de cabeçalho Iphlpapi.h é necessário para aplicativos que usam as funções auxiliares de IP. O arquivo de cabeçalho Iphlpapi.h inclui automaticamente outros arquivos de cabeçalhos com estruturas e enumerações usadas pelas funções auxiliares de IP.
As novas funções auxiliares de IP introduzidas no Windows Vista e posteriores são definidas no arquivo de cabeçalho Netioapi.h , que é incluído automaticamente pelo arquivo de cabeçalho Iphlpapi.h . O arquivo de cabeçalho Netioapi.h nunca deve ser usado diretamente.
Muitas das estruturas e enumerações usadas pelas funções auxiliares de IP são definidas nos arquivos de cabeçalho Iprtrmib.h, Ipexport.h e Iptypes.h . Esses arquivos de cabeçalho são incluídos automaticamente no arquivo de cabeçalho Iphlpapi.h e nunca devem ser usados diretamente.
No Microsoft Windows Software Development Kit (SDK) lançado para Windows Vista e posterior, a organização dos arquivos de cabeçalho foi alterada. Algumas das estruturas agora são definidas nos arquivos de cabeçalho Ipmib.h, Tcpmib.h e Udpmib.h , não no arquivo de cabeçalho Iprtrmib.h . O arquivo de cabeçalho Ipmib.h inclui automaticamente o arquivo de cabeçalho Ifmib.h . Observe que esses arquivos de cabeçalho são incluídos automaticamente em Iprtrmib.h, que é incluído automaticamente no arquivo de cabeçalho Iphlpapi.h .
O arquivo de cabeçalho Winsock2.h para Windows Sockets 2.0 é exigido pela maioria dos aplicativos que usam as APIs auxiliares de IP. Quando o arquivo de cabeçalho Winsock2.h é necessário, a linha #include desse arquivo deve ser colocada antes da linha #include para o arquivo de cabeçalho Iphlpapi.h .
O arquivo de cabeçalho Winsock2.h inclui internamente elementos principais do arquivo de cabeçalho Windows.h , portanto, geralmente não há uma linha de #include para o arquivo de cabeçalho Windows.h em aplicativos auxiliares de IP. Se uma linha de #include for necessária para o arquivo de cabeçalho Windows.h , isso deverá ser precedido com a macro #define WIN32_LEAN_AND_MEAN. Por motivos históricos, o cabeçalho Windows.h usa como padrão a inclusão do arquivo de cabeçalho Winsock.h para Windows Sockets 1.1. As declarações no arquivo de cabeçalho Winsock.h para Windows Sockets 1.1 entrarão em conflito com as declarações no arquivo de cabeçalho Winsock2.h exigido pelo Windows Sockets 2.0. A macro WIN32_LEAN_AND_MEAN impede que o arquivo de cabeçalho Winsock.h seja incluído pelo arquivo de cabeçalho Windows.h . Um exemplo ilustrando isso é mostrado abaixo.
#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; }
Observação
Este aplicativo auxiliar de IP básico usa apenas algumas estruturas de dados de endereço IP e endereço IP para funções de conversão de cadeia de caracteres do Windows Sockets 2.0. Essas funções do Windows Sockets podem ser usadas sem chamar WSAStartup para inicializar recursos do Windows Sockets e WSACleanup quando terminar de usar esses recursos.
Em aplicativos auxiliares de IP que usam outras funções winsock diferentes desses endereços IP para funções de cadeia de caracteres, a função WSAStartup deve ser chamada para inicializar recursos do Windows Sockets antes de chamar qualquer função do Windows Sockets e WSACleanup deve ser chamada quando o aplicativo é feito usando recursos do Windows Sockets.
Observação
O arquivo de cabeçalho Stdio.h é necessário para o uso de várias funções C padrão neste aplicativo auxiliar de IP básico.
Próxima etapa: recuperando informações usando GetNetworkParams