2013-01-21 8 views
2

J'ai essayé d'obtenir les informations d'adresse dans le résultat addrinfo ** structred.getaddrinfo pour ipv6 lien local

mais je reçois l'erreur ci-dessous pour le code

d'erreur dans getaddrinfo: la famille d'adresses pour le nom d'hôte non pris en charge

Code

error = getaddrinfo("fe80::4e80:93ff:fe33:13ff%wlan0", NULL, NULL, &result); 
if (error != 0) 
{ 
    fprintf(stderr, "error in getaddrinfo: %s\n", gai_strerror(error)); 
    exit(EXIT_FAILURE); 
} 

Je suis en mesure de ping cette adresse $ ping6 fe80 :: 4e80: 93ff: fe33: 13ff% wlan0

Voici le détail de ifconfig s

wlan0  Link encap:Ethernet HWaddr 4c:80:93:33:13:ff 
      inet addr:192.168.43.188 Bcast:192.168.43.255 Mask:255.255.255.0 
      inet6 addr: fe80::4e80:93ff:fe33:13ff/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:1985 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:2748 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:950126 (950.1 KB) TX bytes:684317 (684.3 K 

cela fonctionne quand j'ai essayé pour l'IPv4 mais je dois obtenir le getaddrinfo pour ipv6

+0

Ce n'est pas un nom d'hôte, l'erreur est probablement une limitation de l'infrastructure DNS à laquelle vous êtes connecté. –

Répondre

2

Quand vous donnez NULL comme des conseils, getaddrinfo utilisera automatiquement AI_ADDRCONFIG. Habituellement, vous voulez que cet indicateur soit activé, mais lorsque vous vous connectez à une adresse locale de lien, c'est le seul cas où vous ne le voulez pas.

Je suppose que vous n'avez pas d'adresse IPv6 globale configurée et que AI_ADDRCONFIG sélectionne donc uniquement IPv4, pas IPv6. Fournir des conseils appropriés est le moyen d'éviter cela.