comment recuperer le hostname d'un serveur distant à partir de son addresse IP
Bonsoir,
j'essai de determiner le hostname d'un serveur distant connaissant son adresse IP voici comment je procède :
mais je n'ai pas le resultat escompté dans la console j'ai "host 10.68.240.66 not found" je n'entre meme pas dans la condition et je ne comprends pas pourquoi???
Merci d'avance
j'essai de determiner le hostname d'un serveur distant connaissant son adresse IP voici comment je procède :
<br />
-(void)viewDidAppear:(BOOL)animated{<br />
<br />
[super viewDidAppear:animated];<br />
[self viewDidLoad];<br />
<br />
NSUserDefaults *defaultConf;<br />
defaultConf=[NSUserDefaults standardUserDefaults];<br />
NSString * broker =[defaultConf stringForKey:@"broker"];<br />
<br />
const char *brokerChar =[broker UTF8String];<br />
<br />
char hostname[NI_MAXHOST] = {0};<br />
<br />
struct hostent *hp;<br />
long addr;<br />
NSString *hostname1;<br />
<br />
addr = inet_addr(brokerChar);<br />
if(hp = gethostbyaddr((char *) &addr, sizeof(addr), AF_INET)){<br />
<br />
//hostname1 = [[NSString alloc] initWithCString:hp->h_name encoding:NSUTF8StringEncoding];<br />
//NSLog(@"hostname: %@",hostname1);<br />
printf("Hostanme:\t%s\n",hp->h_name);<br />
printf("Aliases:\t");<br />
while(hp->h_aliases[0])<br />
printf("%s",*hp->h_aliases++);<br />
printf("\n");<br />
printf("Adresses:\t");<br />
while (hp->h_addr_list[0])<br />
printf("%s",inet_ntoa(*(struct in_addr *) * hp->h_addr_list++));<br />
printf("\n");<br />
exit(0);<br />
<br />
}<br />
fprintf(stderr, "host %s not found\n",brokerChar);<br />
// exit(1);<br />
}<br />
<br />
<br />
mais je n'ai pas le resultat escompté dans la console j'ai "host 10.68.240.66 not found" je n'entre meme pas dans la condition et je ne comprends pas pourquoi???
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le DNS permet d'associer une chaine de caractère à une autre, soit un nom de domaine à un autre nom de domaine, à un IP, ou à des choses plus complexes comme les entrées SRV.
La convention pour résoudre les adresse IP en nom de domaine est d'inversé l'écriture d'un IP pour en faire une entrée in-addr.arpa. Par exemple, 192.168.42.10 deviendrait 10.42.168.192.in-addr.arpa.
Si on a bien configurer ses serveurs DNS avec les zones de reverse on aura donc ceci :
Maintenant si on est sur une IP publique, c'est plus problématique, nombre de prestataires de services (FAI, hébergeur...) ne propose pas la possibilité de modifier le reverse DNS d'une zone.
Non on n'a pas affaire à une adresse IP publique, nous somme dans un réseau local. Si le serveur à une adresse 192.168.42.10 à cette adresse correspond un nom de domaine locale T1052.T13.local c'est donc cette dernière que j'aimerai avoir.
Là je ne le saurais pas si l'admin à bien fait son boulot. Bon a supposer qu'il a bien fait son boulot qu'est ce qui cloche dans ma maniere d'essayer de recuperer le nom d'hote du serveur distant /huh.gif' class='bbc_emoticon' alt='???' />
Merci d'avance
help me pleaseee
Oui dans la doc de Bonjour j'ai vu cette notion de découverte de service et autre mais dans mon cas à la base c'est l'utilisateur qui choisit le serveur d'application dans lequel il veut taper. Donc il y'a pas de découverte car l'adresse IP est connu au préalable. et c'est le nom en local de ce serveur que je veux récupérer avec le code que j'ai proposé à l'ouverture du sujet "T1052.T13.local" avec T1052 etant le Nom de la machine et T13.local nom de domaine du LAN
Si tu veux passer par l'IP directement il faut configurer un serveur DNS.
Le serveur DNS est déjà configuré
Alors quel est le problème ?
le probleme est que je n'arrive pas en Objective-C à faire la résolution de l'adresse IP du serveur distant en son nom de machine local "T1052.T13.local".
Désole pour l'erreur