Resolvendo um Host
Vou ensinar para vocês como Resolver um Host.
O Ip Address: "www.google.com.br" na forma resolvida fica: 64.233.163.104. (Só para vocês entenderem o que é resolver um host)
Obs: Para compilar você devera usar as libs: "-lconio" e "-lwsock32".
Código:
#include <windows.h> #include <winsock.h> #include <stdio.h> #include <conio.h> extern "C" { HWND WINAPI GetConsoleWindow(void); }; char IpAddress[MAX_PATH]; WSADATA WsaData; int main() { textcolor(GREEN); textbackground(YELLOW); clrscr(); SetWindowText(GetConsoleWindow(), "Resolvendo um Host"); printf("\n Digite um Host para ser resolvido: "); gets(IpAddress); gethostname(IpAddress, strlen(IpAddress)); if (WSAStartup(MAKEWORD(1,1), &WsaData) == SOCKET_ERROR) { printf("\n NÆo foi possivel executar o comando: \"WSAStartup()\"."); getch(); return 0; } else { system("cls"); printf("\n Host Resolvido: %s.", inet_ntoa(* (in_addr *) * gethostbyname(IpAddress)->h_addr_list)); WSACleanup(); getch(); return 0; } }
Explicação do Código:
-
Se você colocar uma String para resolver um Host, você devera usar o comando gethostname(String, strlen(String)), o strlen serve para contar quantos carácteres possui na string.
- O comando inet_ntoa serve para tranforma o Host em números, "*" significa que não possui tamanho, exemplo inet_ntoa(* (in_addr *) *, gethostbyname(IpAddress) serve para conectar no server e verificar o Host, e ->h_addr_list é o tipo de Ip Address.