Estoy asignando una dirección ipv6 usando la llamada al sistema ioctl() de forma prgma. Quiero saber si hay una forma, puedo encontrar que la ip asignada es tentativa/duplicada?Cómo leer el indicador TENTATIVO de la dirección IPv6?
Gracias.
Estoy asignando una dirección ipv6 usando la llamada al sistema ioctl() de forma prgma. Quiero saber si hay una forma, puedo encontrar que la ip asignada es tentativa/duplicada?Cómo leer el indicador TENTATIVO de la dirección IPv6?
Gracias.
Host: enumera las interfaces con getifaddrs()
.
(editar) Parece que necesita llamar al sysctl(NET_IPV6_OPT_DAD_ENABLE)
antes de getifaddrs()
?
http://lwn.net/Articles/218597/
red: Enviar un ICMP ping es el típico, pero no engaña método de prueba que utilizan servidores DHCP.
Se asume que si está configurando la IP, entonces está implementando una forma de DHCP y controla todas las direcciones para ese segmento. De lo contrario, solo use el alcance del enlace local, direcciones ya únicas.
Gracias por su respuesta. Estoy revisando el host. Asigno la dirección IPv6 y luego quiero saber si no es tentativa/duplicada. La función getifaddrs() solo proporciona SIOCGIFFLAGS en la que IFA_F_TENTATIVE no existe. El comando "ip" me dice si el IP es tentativo usando el comando "ip addr show
Estoy revisando las fuentes del paquete iproute que constituye" ip ". Aunque no tuve suerte ...: - ( – Krishna
Usted puede leer bandera provisional de la dirección IPv6 de la siguiente manera:
Indica banderas que se establecen en la dirección de multidifusión. A partir de RFC 2373, el único indicador definido es el indicador Transitorio (T). La bandera T usa el bit de orden inferior del campo Indicadores.
* If 0, the multicast address is a permanently assigned, well-known multicast address allocated by the Internet Assigned Numbers Authority (IANA).
* If 1, the multicast address is a not permanently assigned, or transient.
Hola, Gracias por su respuesta Creo que funciona solo para direcciones IPv6 de varios enlaces. No creo que sea para direcciones locales, locales y globales del enlace. Pero, puedo usar netlink zócalos para recuperar las banderas. Saludos, -Krishna – Krishna
Una forma de obtener el estado de la dirección es el uso de la biblioteca rtnetlink a través del mensaje RTM_GETADDR que recupera la estructura ifaddrmsg que contiene ifa_flags. Mira la página del manual aquí para información:
http://man7.org/linux/man-pages/man7/rtnetlink.7.html
La estructura banderas y ifaddrmsg se muestran en if_addr.h:
https://github.com/torvalds/linux/blob/master/include/uapi/linux/if_addr.h
En el host o la red? –