ich habe das zweifelhafte Glück, nach einem Router-Neustart von meinem Provider zufälig ein Präfix recht weit vorne im Adressbereich meines Providers bekommen zu haben, und dieses lehnt IPv64 mit einem „Format error“ ab. Per Web-UI kann ich es aber problemlos setzen.
Sorry für den erneuten Post, aber ich habe zumindest einen „Würgaround“ für manuelle curl-Updates entwickelt, den ich gerne teile. Wenn man von einem Linux-System mit einer Shell aus updated, kann man einen gültigen Präfix einfach mit:
pad_prefix_ipv64() {
local full_prefix="$1"
local addr="${full_prefix%/*}"
local cidr="${full_prefix##*/}"
formatted=$(echo "${addr}" | awk -F'::' '{
split($1, blocks, ":")
n = ($1 == "") ? 0 : length(blocks)
if (n == 3) {
print $1 ":0::" $2
} else if (n == 2) {
print $1 ":0:0::" $2
} else if (n == 1) {
print $1 ":0:0:0::" $2
} else if (n == 0) {
print "0:0:0:0::" $2
} else {
print $0
}
}')
echo "${formatted}/${cidr}"
}
also padded die Blöcke mit expliziten Nullen. Das geht durch die DYNDNS-API von IPv64.
Das scheint auch der Hack zu sein, den IPv6 Prefix autodetect auf der Webseite nutzt, das gibt den Präfix auch derartig gepadded aus.
Das hilft natürlich nicht bei Clients, die man nicht ändern kann (Fritz!Boxen oder standardkonforme Standalone-Clients) aber ich nutze das bei mir nun in einem Skript auf einem Heimserver, was zusätzlich zur Fritz!Box ein Update macht, falls diese durch den API-Bug versagt.
Ich hoffe, dieser Würgaround kann noch anderen helfen .