
¿Existe un comando para imprimir la versión larga de IPv6 (es decir, con todos ceros en lugar de la versión corta con ::
) de una interfaz?
Por ejemplo,ip -6 addr -I eth0 full
Respuesta1
Algo como
grep eth0 /proc/net/if_inet6 | cut -d' ' -f1
le dará la dirección completa en hexdecimal. Aún tienes que insertar los :
separadores si los quieres. (No dijistepor quénecesitabas todos ceros; cualquier cosa que necesite :
también aceptará formularios cortos con ::
).
Editar
Para el prefijo de un PTR de DNS, algo como
grep eth0 /proc/net/if_inet6 | cut -d' ' -f1 | rev | sed 's/./&./g'
Tenga en cuenta que volverátodoDirecciones IPv6 para esta interfaz, por lo que es necesario iterar.
Además, si necesita configurar entradas PTR de DNS desde IPv6 existente en las interfaces, es muy probable que algo en la forma en que maneja el DNS esté muy mal. Por lo general, lo hace al revés: cualquiera que sea la fuente de sus entradas DNS, eso también debería determinar las direcciones en sus interfaces.
Respuesta2
Para generar registros DNS inversos, tal vez sipcalc
sea una mejor herramienta:
$ sipcalc -r 2001:db8::1
-[ipv6 : 2001:db8::1] - 0
[IPV6 DNS]
Reverse DNS (ip6.arpa) -
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
Simplemente utilícelo grep
para obtener el nombre del registro:
$ sipcalc -r 2001:db8::1 | fgrep .ip6.arpa
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.