Распечатать длинный IPv6 интерфейса

Распечатать длинный IPv6 интерфейса

Существует ли команда для вывода длинной версии IPv6 (т.е. со всеми нулями вместо короткой версии с ::) интерфейса?

Например,ip -6 addr -I eth0 full

решение1

Что-то вроде

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

даст вам полный адрес в шестнадцатеричном формате. Вам все равно придется вставить: если они вам нужны. (Вы не сказалипочемувам нужны были все нули - все, что нужно, :также примет сокращенные формы с ::).

Редактировать

Для префикса DNS PTR, что-то вроде

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

Обратите внимание, что он вернетсявсеАдреса IPv6 для этого интерфейса, поэтому вам нужно повторить.

Также, если вам нужно установить записи DNS PTR из существующих IPv6 на интерфейсах, весьма вероятно, что-то в том, как вы обрабатываете DNS, очень неправильно. Обычно вы делаете это наоборот: какой бы ни был источник ваших записей DNS, он также должен определять адрес(а) на вашем интерфейсе(ах).

решение2

Для генерации обратных записей DNS, возможно, sipcalcлучше использовать следующий инструмент:

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

Просто используйте grep, чтобы получить само имя записи:

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

Связанный контент