GetHostByAddr en C
julow
Messages postés
2198
Date d'inscription
Statut
Membre
Dernière intervention
-
Maximizme Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
Maximizme Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche un moyen pour que en fonction de l'adresse IP de la machine, le serveur DNS envois son nom d'hote.
J'ai donc fait un programme en C qui récupère l'IP de la machine avant de faire un GetHostByAddr pour obtenir le hostname. Le hic c'est que la machine n'intérroge pas le DNS du tout. Je pense que comme on lui demande son propre host name elle ne va pas le chercher sur le DNS mais elle le prend en local.
Comment la forcer à allé le récupérer quand meme sur le DNS??
je cherche un moyen pour que en fonction de l'adresse IP de la machine, le serveur DNS envois son nom d'hote.
J'ai donc fait un programme en C qui récupère l'IP de la machine avant de faire un GetHostByAddr pour obtenir le hostname. Le hic c'est que la machine n'intérroge pas le DNS du tout. Je pense que comme on lui demande son propre host name elle ne va pas le chercher sur le DNS mais elle le prend en local.
Comment la forcer à allé le récupérer quand meme sur le DNS??
3 réponses
Yes, gethostbyaddr est la fonction à utiliser. Je suis au boulot là, je rentre chez moi et je t'envoie mon code dans lequelle j'utilise la fonction gethostbyaddr.
A toute ;)
--
Maximizme
A toute ;)
--
Maximizme
struct hostent *sn = NULL;
int i = IPString1.GetLength() + 1; //Range la taille d'IPString + 1 dans i
char *DEST = new char[j]; // Allocation gynamique de la taille d'IPString + 1
strcpy_s(DEST, j, IPString2); // Converti CString en char *
unsigned int addr_dest = inet_addr(DEST);
tn = gethostbyaddr((char*) &addr_src, 4, AF_INET); // Récupère le nom d'hote avec l'adresse IP
voilà
int i = IPString1.GetLength() + 1; //Range la taille d'IPString + 1 dans i
char *DEST = new char[j]; // Allocation gynamique de la taille d'IPString + 1
strcpy_s(DEST, j, IPString2); // Converti CString en char *
unsigned int addr_dest = inet_addr(DEST);
tn = gethostbyaddr((char*) &addr_src, 4, AF_INET); // Récupère le nom d'hote avec l'adresse IP
voilà
Le truc c'est que moi aussi j'ai réussi à faire ça. J'ai utilisé la table MIB_IFTABLE pour récupérer mon adresse IP, puis via un GetHostByAddr j'ai demandé à récupérer le nom d'hôte correspondant à cette adresse IP mais le problème c'est que comme c'est l'adresse IP local de la machine et bien je pense que la machine plutôt que de se compliquer à le chercher sur le DNS le récupère directement dans ses données systèmes. Mais moi ce que je souhaite c'est faire des modification de nom d'hôte sur mon DNS est que en exécutant ce petit programme la machine change son hostname en conséquence en le récupérant sur ce serveur DNS...
Faut donc que je trouve un moyen de forcer la machine à ignorer ses données local pour ne se fier qu'au DNS. LA forcer à récupérer son hostname dessus en gros.
Mais là je bloque...
Faut donc que je trouve un moyen de forcer la machine à ignorer ses données local pour ne se fier qu'au DNS. LA forcer à récupérer son hostname dessus en gros.
Mais là je bloque...