IPv4-Geolokalisierung nach Transfer: Schritt für Schritt

IPv4-Geolokalisierung nach Transfer: Schritt für Schritt

IPv4-Geolokalisierung nach Transfer: Schritt für Schritt

Kurzantwort: Nach einem Transfer kann die IPv4-Geolokalisierung weiter das falsche Land (das frühere) anzeigen, weil Registry-Eintrag, BGP-Announcement und jede kommerzielle GeoIP-Datenbank getrennte Systeme sind. Eine Änderung in der Registry schreibt die Datenbanken nicht um. Was funktioniert: eine eigene Standortdatei veröffentlichen (einen Geofeed nach RFC 8805), im RIPE-Database-Objekt darauf verweisen und bei jedem Anbieter eine Korrektur einreichen, die Ticket-IDs aufheben. Kein Anbieter garantiert einen Termin. Geprüft am 2026-10-14. Die Registry-Schritte stehen in unserem RIPE-NCC-Transferleitfaden; dieser Beitrag beginnt, wenn der Block Ihnen gehört.

Vier Einträge, vier verschiedene Fragen

Eintrag Beantwortet Wer setzt ihn Wirkung
RIR-Eintrag (WHOIS) Wer den Block hält Der Inhaber, in der Registry Identität des Inhabers. country: ist kein Standort
BGP-Origin und ROA Wer ihn announct und ob das autorisiert ist Sie, auf Ihren Routern und in RPKI Erreichbarkeit und Routen-Gültigkeit, nicht das Land
Geofeed (RFC 8805) Wo der Betreiber jedes Präfix nutzt Sie, in einer selbst gehosteten Datei Ein Hinweis für Anbieter, die ihn lesen
Kommerzielle GeoIP-Datenbank Wo der Anbieter die Adresse vermutet Der Anbieter, aus eigenen Quellen Was Websites und Apps sehen

Das Fünfte, wo Ihre Server wirklich stehen, versuchen die anderen vier abzubilden. Die Dokumentation der RIPE Database sagt, es sei nie festgelegt worden, was country: bedeutet; es lässt sich nicht zuverlässig nutzen, um IP-Adressen Ländern zuzuordnen, und das RIPE NCC erklärt, kein Geolokalisierungsanbieter zu sein. Ein Block kann auf eine Firma in einem Land eingetragen sein und in einem anderen laufen, und beide Einträge stimmen.

Diagnose mit einer Checkliste und einem Skript

Prüfung Befehl Wirkung
CIDR und Registry-Eintrag whois -h whois.ripe.net -r -T inetnum 192.0.2.0/24 Inhaber, country:, die Zeile geofeed:
Geofeed-Datei curl -s <URL aus geofeed:> Standorthinweis für Anbieter, die ihn lesen
Origin-AS und ROA RIPEstat prefix-overview, rpki-validation Routing und Routen-Gültigkeit, nicht das Land
Anbieter-Einträge Öffentliche Abfrageseite des Anbieters Das Land, das Ihre Nutzer und Partner sehen
Reverse DNS dig -x 192.0.2.1 Mail-Prüfungen und lesbare Logs; keine geprüfte Quelle nutzt es für das Land

192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 und 2001:db8::/32 sind Dokumentationspräfixe: nur für die Syntax verwenden, denn sie werden nicht announct, und die RIPE-Abfrage liefert für sie den übergeordneten Block außerhalb von RIPE. Für die Live-Ausgabe nehmen wir das eigene Präfix von DCXV und AS204057 (ausgeführt am 2026-10-14; Linux, whois 5.6, jq 1.8; auf einem System ohne services-Datei -p 43 an whois anhängen):

$ whois -h whois.ripe.net -r -T inetnum 178.23.189.0/24 | grep -E '^(inetnum|netname|country|geofeed)'
inetnum:        178.23.189.0 - 178.23.189.255
netname:        CY-DCXV-20210903
country:        CY
geofeed:        https://dcxv.com/geofeed.csv
$ curl -s 'https://stat.ripe.net/data/prefix-overview/data.json?resource=178.23.189.0/24' | jq -c '.data.asns'
[{"asn":204057,"holder":"DCXV-AS DCXV INTERNATIONAL LTD"}]
$ curl -s 'https://stat.ripe.net/data/rpki-validation/data.json?resource=204057&prefix=178.23.189.0/24' | jq -r '.data.status'
valid

Die Registry sagt CY, weil der Inhaber eine zyprische Firma ist, die Server stehen anderswo. Origin-AS und ROA sind gültig, und ein Attribut geofeed: ist vorhanden. Diese Mischung ist normal und der Grund, warum ein Anbieter ein Land zeigen kann, das die Registry nicht nennt. DCXV veröffentlicht seine Netzdaten hier. Wenn Sie einen Block mit diesem Problem halten, können Sie eine Anfrage zum IPv4-Transfer stellen.

Das folgende Skript (Python 3.8+, nur Standardbibliothek, mit 3.14 getestet, nur Ressourcen der RIPE-Region) gibt Registry-Objekt, Origin-AS, RPKI-Status und die spezifischste Geofeed-Zeile für ein Präfix aus, über die RIPE Database und RIPEstat. Wir haben es mit DCXV-Präfixen, Dokumentationspräfixen und Fehlerfällen ausgeführt; das Feed-Matching wurde zusätzlich offline an einer Beispieldatei geprüft.

#!/usr/bin/env python3
"""geocheck.py PREFIX - registry country, origin ASN, RPKI status and geofeed line for a prefix.
Python 3.8+, standard library only. Data: RIPE Database REST API and RIPEstat (RIPE region only)."""
import csv, io, ipaddress, json, sys, time, urllib.error, urllib.parse, urllib.request

def get(url):
    req = urllib.request.Request(url, headers={'Accept': 'application/json', 'User-Agent': 'geocheck/1.0'})
    for attempt in range(4):
        try:
            with urllib.request.urlopen(req, timeout=20) as r:
                return r.read(5_000_000).decode('utf-8-sig', 'replace')  # cap the read at 5 MB
        except OSError as e:  # includes HTTP 429 and connection resets
            if isinstance(e, urllib.error.HTTPError) and 400 <= e.code < 500 and e.code != 429:
                sys.exit('request refused for %s: %s' % (url, e))  # retrying a 4xx will not help
            if attempt == 3:
                sys.exit('network error for %s: %s' % (url, e))
            time.sleep(2 ** attempt)

def stat(call, **q):
    return json.loads(get('https://stat.ripe.net/data/%s/data.json?%s' % (call, urllib.parse.urlencode(q))))['data']

def registry(net):
    # best match: the most specific inetnum / inet6num that covers the prefix
    t = 'inet6num' if net.version == 6 else 'inetnum'
    q = urllib.parse.urlencode([('query-string', str(net)), ('source', 'ripe'), ('type-filter', t),
                                ('flags', 'no-referenced'), ('flags', 'no-irt')])
    try:
        obj = json.loads(get('https://rest.db.ripe.net/search.json?' + q))['objects']['object'][0]
    except (ValueError, KeyError, IndexError):
        return None
    return {a['name']: a['value'] for a in obj['attributes']['attribute']}

def feed_match(url, net):
    # most specific feed entry that covers the prefix; RFC 8805 columns: prefix,country,region,city
    best = None
    for row in csv.reader(io.StringIO(get(url))):
        if not row or row[0].lstrip().startswith('#'):
            continue
        try:
            p = ipaddress.ip_network(row[0].strip(), strict=False)
        except ValueError:
            continue
        if p.version == net.version and net.subnet_of(p) and (best is None or p.prefixlen > best[0].prefixlen):
            best = (p, row)
    return best[1] if best else None

def main(arg):
    try:
        net = ipaddress.ip_network(arg, strict=False)
    except ValueError:
        sys.exit('usage: geocheck.py PREFIX   (for example 192.0.2.0/24)')
    if net.prefixlen == net.max_prefixlen:
        sys.exit('give the prefix, not a single address: a /32 or /128 gives a misleading RPKI result')
    if net.prefixlen == 0:
        sys.exit('give a real prefix, not the default route')
    print('prefix           ', net)
    reg = registry(net)
    top = reg and ((reg.get('netname') or '').startswith('NON-RIPE-NCC-MANAGED')
                   or (reg.get('inetnum') or '').startswith('0.0.0.0 -') or reg.get('inet6num') == '::/0')
    if not reg or top:
        print('registry object   outside the RIPE NCC: query that RIR instead')
    else:
        print('registry object  ', reg.get('inetnum') or reg.get('inet6num'), '| netname', reg.get('netname'), '| status', reg.get('status'))
        print('registry country ', reg.get('country'), '(country: is not a location)')
    ov = stat('prefix-overview', resource=str(net))
    asns = [str(a['asn']) for a in ov.get('asns', [])]
    print('origin ASN       ', ', '.join('AS' + a for a in asns) or 'not announced (no origin in RIPEstat)')
    for a in asns:
        print('RPKI AS%-9s' % a, stat('rpki-validation', resource=a, prefix=str(net))['status'])
    url = None if top else (reg or {}).get('geofeed')
    if not url:
        print('geofeed          none (no geofeed: attribute on the best-match object)')
        return
    print('geofeed URL      ', url)
    if not url.startswith('https://'):
        sys.exit('geofeed URL is not https://, not fetched')
    row = feed_match(url, net)
    print('geofeed line     ', ','.join(row[:4]) if row else 'NO entry covers this prefix')

if __name__ == '__main__':
    if len(sys.argv) != 2:
        sys.exit('usage: geocheck.py PREFIX')
    main(sys.argv[1])

Sie wollen valid und eine Feed-Zeile für Ihr Präfix sehen. "NO entry covers this prefix" heißt: Anbieter, die Ihren Feed lesen, überspringen den Block.

Wohin Korrekturen gehen

Nutzen Sie den aktuellen Kanal jedes Anbieters; die Korrektur bei einem behebt die anderen nicht. Dokumentation geprüft am 2026-10-14.

Anbieter Kanal Was die Dokumentation sagt
MaxMind Einmalformulare; GeoIP Exchange für Betreiber Nimmt Geofeeds nach RFC 8805 und RFC 9632 an, Prüfung einmal je Werktag; kein Release-Termin
IPinfo Korrekturseite; Geofeeds Community-Beitrag (2026-02-05): zuerst Messung, Geofeeds selektiv
DB-IP Report-Link im Ergebnis; Sammelmeldung per Kontaktformular Geänderter RIR-WHOIS-Eintrag löst meist eine Aktualisierung aus; ein Geofeed ist ein weiterer Weg
IP2Location Kontakt und Bericht zur Datengenauigkeit Release-Termine je Lizenz; kein öffentliches Korrektur- oder Geofeed-Verfahren gefunden
Google IP-Meldeformular in der Search-Hilfe Updates können über einen Monat dauern ("may take more than a month"); keine individuelle Rückmeldung

Geofeed veröffentlichen und verlinken

Ein Geofeed ist eine CSV-Datei nach RFC 8805: ip_prefix,alpha2code,region,city. Verschachtelte Präfixe sind erlaubt, das spezifischste gewinnt. Der RFC verlangt UTF-8 und CRLF-Zeilenumbrüche, erklärt die Postleitzahl für veraltet (also weglassen) und erlaubt Konsumenten, die Daten nur als Hinweis zu behandeln. Eine minimale Datei mit Dokumentationspräfixen:

# prefix,country,region,city
192.0.2.0/24,CZ,CZ-10,Prague
2001:db8::/32,CZ,CZ-10,Prague

Hosten Sie die Datei per HTTPS und fügen Sie Ihrem inetnum oder inet6num eine Zeile geofeed: https://example.net/geofeed.csv hinzu; das Attribut ist optional und einfach. RFC 9632 weist Konsumenten an, das spezifischste Objekt mit Geofeed zu nehmen und andere Hinweise wie country: dann zu ignorieren. Er definiert auch eine optionale RPKI-Signatur für die Datei; welche Anbieter sie prüfen, haben wir nicht verifiziert. Lesen Sie nach einem Transfer das Objekt: Eine vom Verkäufer hinterlassene Zeile geofeed: zeigt auf eine Datei, die Sie nicht kontrollieren.

Ein Schrittplan für den neuen Inhaber

  1. Belege sammeln. Den Registry-Eintrag mit Ihnen als Inhaber, die CIDR-Liste und den Nachweis, wo die Server laufen.
  2. Die eigene Seite korrigieren. Zeile geofeed: berichtigen, Datei veröffentlichen, Skript ausführen.
  3. Pro Anbieter einreichen. Je eine Anfrage mit der Feed-URL. Nur den tatsächlichen Standort angeben: Anbieter können ihn mit eigenen Messungen abgleichen.
  4. Protokoll führen. Ticket-ID, Datum, Anbieter, Präfix, Antwort.
  5. Später erneut prüfen. Niemand verspricht einen Termin, planen Sie also keinen Start darauf.

Symptom, Ursache, Prüfung, Maßnahme

Symptom Mögliche Ursache Prüfen Maßnahme
Mehrere Anbieter zeigen das frühere Land Kein Geofeed oder noch nicht gelesen Das Skript: Zeile geofeed: und passender Eintrag? Feed veröffentlichen, dann je Anbieter eine Korrektur
Ein Anbieter folgt der Registry, nicht Ihrem Feed Der Anbieter nutzt keine Feeds Seine Dokumentation und eine Abfrage Korrektur mit der Feed-URL senden
Feed ist live, alte Daten bleiben Release-Verzug, Abruffehler oder Messung widerspricht HTTPS erreichbar, Präfix abgedeckt, kein widersprüchlicher verschachtelter Eintrag Anbieter fragen, Ticket behalten, später prüfen
Nur ein CDN, eine Bank oder ein Zahlungsdienst liegt falsch Er nutzt eigene Daten: Cloudflare etwa aktualisiert seine Datenbank mehrmals pro Woche und kann keine Übereinstimmung mit anderen Anbietern garantieren; Risiko-Engines gewichten ggf. weitere Signale Fragen, welche Quelle er verwendet Diese Quelle korrigieren, dann den Dienst informieren
Land stimmt, Stadt falsch Im Feed fehlt die Stadt, oder die Messung weicht ab Die Spalte city im Feed Region und Stadt ergänzen, dann erneut anfragen

Ablaufdiagramm: fünf Prüfungen der Reihe nach bei falschem Land eines IPv4-Blocks, mit der Maßnahme für jede

Das Risiko vor dem Kauf abschätzen

Blacklists und Missbrauch stehen in der Due-Diligence-Checkliste; hier geht es nur um Geolokalisierung. Fragen Sie das Präfix jetzt bei zwei oder drei Anbietern ab, lesen Sie im inetnum das country: und jede URL geofeed: und klären Sie, wer diese Datei kontrolliert. Vereinbaren Sie im Vertrag, dass der Verkäufer den Feed-Verweis beim Closing übergibt oder entfernt.

Nächster Schritt

Unklar, wo die Lücke liegt? Eine Anfrage zum IPv4-Transfer stellen oder an ipv4@dcxv.com schreiben, mit Präfix und Symptom. Wir versprechen nicht, wann ein Anbieter aktualisiert.

IPv4-Treuhand: Zahlungsablauf, Checkliste für beide Seiten
ipv4brokertransfer

IPv4-Treuhand: Zahlungsablauf, Checkliste für beide Seiten

IPv4-Treuhand (Escrow) erklärt: Zahlungsmeilensteine, wer was bestätigt, Bedingungen für die Freigabe der Mittel und Fehlerfälle für Käufer und Verkäufer.

IPv4-Geolokalisierung nach Transfer: Schritt für Schritt
ipv4networkingtransfer

IPv4-Geolokalisierung nach Transfer: Schritt für Schritt

Ihr übertragener IPv4-Block zeigt noch das frühere Land? So prüfen Sie WHOIS, BGP und GeoIP, veröffentlichen einen Geofeed und beantragen Korrekturen.

RIPE IPv4-Transfer: PA, PI, Sponsoring-LIR und Escrow
ipv4ripe-ncctransferbrokernetworking

RIPE IPv4-Transfer: PA, PI, Sponsoring-LIR und Escrow

Praxisleitfaden zum RIPE-IPv4-Transfer: PA- und PI-Ressourcen, Sponsoring-LIR, Dokumente, Escrow und Schritte. Policy geprüft 2026-10 nach RIPE-807, RIPE-826.

IPv4-Adressen kaufen: Kosten, Transferregeln und Risiken
ipv4brokerpricingtransferripe-ncc

IPv4-Adressen kaufen: Kosten, Transferregeln und Risiken

IPv4-Adressen sicher kaufen: Kauf, Miete oder BYOIP, Gesamtkosten, Block prüfen, Treuhand nutzen und Empfängerregeln von RIPE NCC, ARIN und APNIC erfüllen.

IPv4-Broker, Marktplatz, Direktverkauf: Was ist sicherer?
ipv4brokertransfer

IPv4-Broker, Marktplatz, Direktverkauf: Was ist sicherer?

Vergleichen Sie IPv4-Broker, Marktplatz und Direktverkauf nach Tempo, Diskretion, Käuferprüfung, Escrow, Gebühren und Transferbegleitung samt Warnsignalen.