- #include <stdlib.h>
- #include <winsock2.h>
-
- /*
- ----------------------------------------
- Prototype de la fonction gethostbyname :
- ----------------------------------------
-
- hostent *gethostbyname(const char *name);
- -> renvoie un pointeur sur une structure hostent.
-
- ------------------------------------
- Description de la stucture hostent (host entity ??):
- ------------------------------------
-
- struct hostent
- {
- char *h_name; // Nom de domaine primaire
- char **h_aliases; // Alias ??
- int h_addrtype; // ???
- int h_length; // Longueur des ips
- char **h_addr_list; // Liste d'ips pour le nom de domaine
- };
-
- #define h_addr h_addr_list[0] // Definit directement l'ip exploitable
-
- */
-
- int main() {
- WSADATA WSAData;
-
- struct hostent *host;
- struct in_addr **a;
-
- char req_host[255];
-
- printf("Entrer l'Adresse (DNS) de l'hote : ");
- scanf("%s",req_host);
-
- if (WSAStartup(MAKEWORD(2,0), &WSAData) == SOCKET_ERROR) {
- printf("\nProbleme de Winsock ...\n\n");
- return 0;
- }// Etape obligatoire pour la programmation socket
-
- if(host = gethostbyname(req_host)) {
- // Test pour savoir si l'host a été resolu
- printf("\nDNS resolu ... \n\n");
-
- printf("Nom\t\t\t: %s\n", host->h_name);
- printf("Type d'adresse\t\t: %u\n", host->h_addrtype);
- printf("Taille d'adresse\t: %u\n", host->h_length);
-
- for (a=(struct in_addr **)host->h_addr_list; *a; a++) {
- printf("Adresse(s) Ip\t\t: %s\n", inet_ntoa(**a));
- } // Boucle sur toute les ips du nom de domaine
- printf("\n");
-
- }
- else printf("\nResolution DNS impossible ...\n\n");
-
- WSACleanup(); // On Cleanup koâ :)
- system("pause");
- return 1;
- }
#include <stdlib.h>
#include <winsock2.h>
/*
----------------------------------------
Prototype de la fonction gethostbyname :
----------------------------------------
hostent *gethostbyname(const char *name);
-> renvoie un pointeur sur une structure hostent.
------------------------------------
Description de la stucture hostent (host entity ??):
------------------------------------
struct hostent
{
char *h_name; // Nom de domaine primaire
char **h_aliases; // Alias ??
int h_addrtype; // ???
int h_length; // Longueur des ips
char **h_addr_list; // Liste d'ips pour le nom de domaine
};
#define h_addr h_addr_list[0] // Definit directement l'ip exploitable
*/
int main() {
WSADATA WSAData;
struct hostent *host;
struct in_addr **a;
char req_host[255];
printf("Entrer l'Adresse (DNS) de l'hote : ");
scanf("%s",req_host);
if (WSAStartup(MAKEWORD(2,0), &WSAData) == SOCKET_ERROR) {
printf("\nProbleme de Winsock ...\n\n");
return 0;
}// Etape obligatoire pour la programmation socket
if(host = gethostbyname(req_host)) {
// Test pour savoir si l'host a été resolu
printf("\nDNS resolu ... \n\n");
printf("Nom\t\t\t: %s\n", host->h_name);
printf("Type d'adresse\t\t: %u\n", host->h_addrtype);
printf("Taille d'adresse\t: %u\n", host->h_length);
for (a=(struct in_addr **)host->h_addr_list; *a; a++) {
printf("Adresse(s) Ip\t\t: %s\n", inet_ntoa(**a));
} // Boucle sur toute les ips du nom de domaine
printf("\n");
}
else printf("\nResolution DNS impossible ...\n\n");
WSACleanup(); // On Cleanup koâ :)
system("pause");
return 1;
}