
::
Gibt es einen Befehl, um die lange IPv6-Version (also mit lauter Nullen statt der Kurzversion mit ) einer Schnittstelle auszudrucken ?
Zum Beispiel,ip -6 addr -I eth0 full
Antwort1
Etwas wie
grep eth0 /proc/net/if_inet6 | cut -d' ' -f1
gibt Ihnen die vollständige Adresse in Hexadezimalzahlen. Sie müssen noch die :
Trennzeichen einfügen, wenn Sie sie möchten. (Sie haben nicht gesagtWarumSie brauchten nur Nullen – alles, was braucht, :
akzeptiert auch Kurzformen mit ::
).
Bearbeiten
Für das Präfix eines DNS-PTR etwa
grep eth0 /proc/net/if_inet6 | cut -d' ' -f1 | rev | sed 's/./&./g'
Beachten Sie, dass es zurückkehrtalleIPv6-Adressen für diese Schnittstelle, Sie müssen also iterieren.
Wenn Sie DNS-PTR-Einträge von vorhandenen IPv6-Schnittstellen festlegen müssen, ist höchstwahrscheinlich etwas an der Art und Weise, wie Sie DNS handhaben, falsch. Normalerweise machen Sie es andersherum: Was auch immer die Quelle Ihrer DNS-Einträge ist, diese sollte auch die Adresse(n) Ihrer Schnittstelle(n) bestimmen.
Antwort2
Zum Generieren von Reverse-DNS-Einträgen gibt es vielleicht sipcalc
ein besseres Tool:
$ 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.
Verwenden Sie einfach grep
, um den Datensatznamen selbst abzurufen:
$ 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.