Imprima el IPv6 largo de una interfaz

Imprima el IPv6 largo de una interfaz

¿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 sipcalcsea 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 greppara 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.

información relacionada