Imprima IPv6 longo de uma interface

Imprima IPv6 longo de uma interface

Existe um comando para imprimir a versão longa do IPv6 (ou seja, com todos os zeros em vez da versão curta com ::) de uma interface?

Por exemplo,ip -6 addr -I eth0 full

Responder1

Algo como

grep eth0 /proc/net/if_inet6 | cut -d' ' -f1

lhe dará o endereço completo em hexdecimal. Você ainda precisa inserir os :separadores se quiser. (Você não dissepor quevocê precisava de todos os zeros - tudo o que for necessário :também aceitará formulários curtos com ::).

Editar

Para o prefixo de um DNS PTR, algo como

grep eth0 /proc/net/if_inet6 | cut -d' ' -f1 | rev | sed 's/./&./g'

Observe que ele retornarátodosEndereços IPv6 para esta interface, então você precisa iterar.

Além disso, se você precisar definir entradas DNS PTR do IPv6 existente nas interfaces, muito provavelmente algo na maneira como você lida com o DNS está muito errado. Normalmente você faz o contrário: qualquer que seja a fonte de suas entradas DNS, isso também deve determinar o(s) endereço(s) em sua(s) interface(s).

Responder2

Para gerar registros DNS reversos, talvez sipcalcseja uma ferramenta melhor:

$ 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.

Basta usar greppara obter o próprio nome do 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.

informação relacionada