Anfragen stellen

Eine einzelne IP-Adresse als VPN, Proxy, Tor-Ausgangsserver, Hosting-/CDN-Server oder privaten/mobilen Proxy klassifizieren.

API-Endpunkt

GET https://vpn-proxy-detection.whoisxmlapi.com/api/v1/ip/185.220.101.1?apiKey=YOUR_API_KEY
Die Aktivierung Ihres Kontos nach der Registrierung dauert bis zu einer Minute.

Postman-Sammlung

Postman ist eine Desktop- und Webanwendung, mit der Sie über eine grafische Benutzeroberfläche Anfragen an eine API stellen können. Wir empfehlen die Verwendung von Postman in Verbindung mit den Endpunkten der WhoisXML-APIs, sowohl beim Erkunden der API-Funktionalität als auch bei der Fehlerbehebung in Ihrer Anwendung.

Die Postman-Sammlung für die WhoisXML-API ist unter den folgenden Links verfügbar:

Die Sammlung enthält eine vorkonfigurierte Umgebung. Sie müssen den Variable „api_key“ Variable einrichten, um jede Anfrage auszulösen. Ihren persönlichen API-Schlüssel finden Sie auf der Seite „Meine Produkte “. Wenn Sie Fragen zur API haben, kontaktieren Sie uns bitte.

Eingabeparameter

apiKey

Erforderlich. Rufen Sie Ihren persönlichen API-Schlüssel auf der Seite „Meine Produkte “ ab.

IP-Adresse

Erforderlich. Die zu klassifizierende IPv4-Adresse. Wird als Pfadsegment der Anfrage-URL angegeben, z. B. /api/v1/ip/185.220.101.1.

Beispielausgabe

{
    "ip": "185.220.101.1",
    "network": "185.220.101.0\/24",
    "classification": "tor",
    "provider": null,
    "confidence": 1.0,
    "source": "port_scan",
    "detection_method": "port_scan",
    "first_seen": "2024-01-15T08:30:00Z",
    "last_seen": "2026-06-08T08:59:09Z",
    "observation_count": 127,
    "hits_days_pct": 47.78,
    "providers_num": 0,
    "confidence_decay": 0.6650,
    "freshness_class": "current",
    "is_vpn": false,
    "is_proxy": false,
    "is_tor": true,
    "is_relay": false,
    "is_hosting": false,
    "is_cdn": false,
    "is_residential_proxy": false,
    "is_residential_proxy_high_confidence": false,
    "is_residential_proxy_mobile": false,
    "is_open_proxy": false,
    "is_corporate_vpn": false,
    "risk_score": 100,
    "asn": 60729,
    "asn_org": "TORSERVERS-NET - Stiftung Erneuerbare Freiheit, DE",
    "cdn_operator": null,
    "asn_abuse": {
        "abuse_score": 88,
        "abuse_level": "high",
        "flagged_ratio": 0.62,
        "flagged_ip_count": 1240,
        "total_announced_ips": 2000
    },
    "metadata": {
        "raw_score": 100,
        "signals": { "open_ports": [9001, 9030] },
        "dns_enrichment": null,
        "tls_enrichment": null
    },
    "observed_location": null
}

Code: 200 OK.

Ausgabeparameter

ip

Die abgefragte IPv4-Adresse wurde zurückgegeben.

Netzwerk

Zeichenkette oder null. Der CIDR-Bereich, zu dem die IP-Adresse gehört, sofern bekannt.

Klassifizierung

Zeichenkette. Der Erkennungstyp der IP-Adresse.

Zulässige Werte: vpn, corporate_vpn, proxy, hosting, cdn, tor, relay, residential_proxy, residential_proxy_likely, residential_proxy_mobile, datacenter_proxy, mobile_proxy, suspected_vpn, suspected_proxy, unknown.

Anbieter

Zeichenkette oder null. Anbieterangabe für die IP-Adresse (z. B. eine VPN-Marke, ein Proxy-Netzwerk für Privatanwender, ein Hosting-Anbieter). „null“, wenn keine Zuordnung verfügbar ist.

Selbstvertrauen

Float-Wert im Bereich [0, 1]. Kalibrierte Konfidenz der Klassifizierung. Höhere Werte weisen auf stärkere Belege hin.

Quelle

Zeichenkette. Die Erkennungsmethode, mit der der Datensatz erstellt wurde (z. B. mslm, port_scan, proxy_enum, netflow_analysis, asn_classification).

Erkennungsmethode

Zeichenkette. Entspricht der Quelle (veraltetes Feld, das aus Gründen der Abwärtskompatibilität beibehalten wurde).

erstmalig gesehen

Zeichenkette (ISO-8601) oder null. Zeitpunkt, zu dem die IP-Adresse erstmals festgestellt wurde.

zuletzt gesehen

Zeichenkette (ISO-8601) oder null. Zeitpunkt, zu dem die IP-Adresse zuletzt erfasst wurde.

Anzahl der Beobachtungen

Ganzzahl. Gesamtzahl der Beobachtungen der IP-Adresse (Treffer).

Treffer_Tage_Prozent

Float oder null. Persistenz: Der Prozentsatz der Tage innerhalb des gleitenden 90-Tage-Beobachtungsfensters, an denen die IP-Adresse als aktiver Proxy-/VPN-Ausgang beobachtet wurde (Anzahlder einzelnen Beobachtungstage ÷ 90 × 100).

High (>50) indicates a consistently active exit; low (<5) indicates sporadic or one-shot activity. Null when the result comes from a network-range detection with no per-IP observation history.

Anbieteranzahl

Ganzzahl. Anzahl der unterschiedlichen Proxy-/VPN-Netzwerke, über die die IP-Adresse als Ausgangspunkt beobachtet wurde. Ein Wert von 2 oder mehr bedeutet, dass die IP-Adresse über mehrere kommerzielle Netzwerke hinweg gemeinsam genutzt oder weiterverkauft wird – ein starkes Anzeichen für die Nutzung eines Proxys. 0 bedeutet, dass keine Auflistungshistorie pro IP-Adresse vorliegt (nur Erkennung auf Bereichsebene).

Vertrauensverlust

Wert im Bereich [0, 1,5]. Zusammengesetzter Evidenzstärkewert: Aktualitätsfaktor × Konsistenz × Multi-Provider-Boost. Werte über 1,0 weisen auf IP-Adressen hin, die von mehreren Anbietern stammen und täglich aktiv sind; 0,0 bedeutet, dass sie auf Punkt-Ebene nie beobachtet wurden. Für einen normalisierten Wert zwischen 0 und 1 verwende min(confidence_decay, 1,0).

Frischeklasse

Zeichenkette. Der „Observation Staleness Bucket“ wird aus „last_seen“ abgeleitet, sodass Sie ohne datumsbezogene Berechnungen filtern können.

Zulässige Werte: aktuell (am letzten Tag gemessen), aktuell (letzte Woche), veraltet (letzte 90 Tage), eingefroren (vor mehr als 90 Tagen oder noch nie gemessen).

is_vpn

Boolean. True if the classification is in {vpn, vpn_concentrator, corporate_vpn, commercial_vpn, vpn_hosting} (confirmed VPN endpoints). Does not include tor, relay, suspected_vpn, or vpn_suspecttor/relay have dedicated booleans; suspected_vpn/vpn_suspect are corroboration-only signals that do not set is_vpn. This asymmetry with is_proxy is deliberate: suspected_proxy does set is_proxy, but suspected_vpn/vpn_suspect never set is_vpn.

is_proxy

Boolescher Wert. True, wenn die Klassifizierung zu {proxy, datacenter_proxy, mobile_proxy, suspected_proxy} gehört. Private Proxys sind nicht enthalten (siehe is_residential_proxy). Um alle Arten von Proxys abzugleichen, kombinieren Sie is_proxy ODER is_residential_proxy.

is_tor

Boolescher Wert. True, wenn es sich bei der IP-Adresse um einen Tor-Ausgangsknoten handelt (Klassifizierung „tor“).

is_relay

Boolescher Wert. „True“, wenn es sich bei der Klassifizierung um ein Relay handelt – einen datenschutzkonformen Relay-Dienst (z. B. Apple Private Relay). Unterscheidet sich von „is_vpn“: Relays leiten den Datenverkehr der Nutzer über einen vom Anbieter betriebenen Ausgangs-Knoten weiter, ohne dass der Nutzer den Endpunkt selbst auswählen kann.

is_hosting

Boolescher Wert. True, wenn die IP-Adresse zu einem Rechenzentrum bzw. Hosting-Anbieter gehört.

is_cdn

Boolescher Wert. True, wenn die IP-Adresse zu einem Content-Delivery-Netzwerk gehört.

is_residential_proxy

Boolean. True if the classification is in {residential_proxy, residential_proxy_likely, residential_proxy_mobile}. Mutually exclusive with is_proxy; use the more specific booleans below to filter further.

is_residential_proxy_high_confidence

Boolescher Wert. True, wenn die Klassifizierung == residential_proxy ist (die Präzisionsstufe ≥85 %). Teilmenge von is_residential_proxy.

is_residential_proxy_mobile

Boolescher Wert. True, wenn classification == residential_proxy_mobile – IP-Adressen von Mobilfunkanbietern, die als Proxy erkannt wurden. Teilmenge von is_residential_proxy.

is_open_proxy

Boolescher Wert. True, wenn die IP-Adresse in einer öffentlichen Liste offener Proxys aufgeführt ist. Unterscheidet sich von „is_proxy“: Jeder offene Proxy ist auch ein Proxy, aber die meisten Proxys sind nicht in öffentlichen Listen aufgeführt.

is_corporate_vpn

Boolescher Wert. True, wenn es sich bei der IP-Adresse um ein VPN der Appliance-Klasse handelt (Fortinet, Pulse Secure, Cisco AnyConnect, …). Unterflag von „is_vpn“.

Risikowert

Ganzzahl im Bereich [0, 100]. Berechnet als Konfidenz × 100, mit einem Aufschlag von +10 für Klassifizierungstypen mit hohem Risiko.

asn

Ganzzahl oder Null. Nummer des autonomen Systems, das die IP-Adresse bekanntgibt.

asn_org

Zeichenkette oder null. Name der für die ASN registrierten Organisation.

cdn_operator

Zeichenkette oder null. Normalisierter Name des CDN-Betreibers (Kleinbuchstaben), z. B. akamai, fastly, cloudflare, aws_cloudfront. Nur dann nicht null, wenn classification == cdn.

asn_abuse

Objekt oder null. Missbrauchsbewertung auf ASN-Ebene. Verfügbar in allen Tarifen; Premium-Tarife (Growth+) erhalten die vollständige Aufschlüsselung:

abuse_score — Ganzzahl zwischen 0 und 100, Missbrauchsgrad für diese ASN (alle Stufen).

abuse_level — Zeichenfolge: niedrig, mittel, hoch, kritisch (alle Stufen).

flagged_ratio — float 0,0–1,0, Anteil der markierten IP-Adressen im ASN (Wachstum+).

flagged_ip_count — Ganzzahl, Anzahl der markierten IP-Adressen (Wachstum+).

total_announced_ips — Ganzzahl, Gesamtzahl der von diesem ASN angekündigten IP-Adressen (Wachstum+).

Metadaten

Objekt. Zusätzliche Erkennungssignale und Anreicherungsdaten (alle Schlüssel optional):

raw_score — Zahl, der interne numerische Konfidenzwert (0–100).

Signale — Objekt, Erkennungssignale (Portmuster, Protokolle usw.).

dns_enrichment — Objekt, DNS-PTR-Einträge und RDNS-Verlauf.

tls_enrichment — Objekt, TLS-Zertifikatsanalyse.

beobachteter_Standort

Objekt oder null. Geodaten, nur Premium-Stufen (Growth+); null, wenn keine Daten zu beobachteten Standorten vorliegen. Schlüssel:

exit_country — Zeichenkette oder null, ISO 3166-1 Alpha-2-Ländercode der Ausgangs-IP-Adresse.

user_countries – Array aus Zeichenketten oder null; Länder, in denen Nutzer dieser IP-Adresse beobachtet wurden.

user_country_count — Ganzzahl oder NULL, Anzahl der verschiedenen Länder der Benutzer.

observed_lat / observed_lon — Zahl oder NULL, Koordinaten des beobachteten Austrittspunkts.

observed_countries — Array von Zeichenketten, Länder, in denen dieser Konzentrator beobachtet wurde.

observation_readings — Zeichenfolge oder null, Metadaten zu den Beobachtungen.

Freier Zugang

Nach der Registrierung erhalten Sie automatisch ein kostenloses Abonnement, das auf 10 Abfragen begrenzt ist.

Ratenbegrenzungen

API-Anfragen unterliegen pro API-Schlüssel einer Ratenbegrenzung über ein gleitendes 60-Sekunden-Fenster. Das Limit hängt von Ihrem Abonnement ab:

Kostenlos

2 Anfragen/Minute

Vorspeise

30 Anfragen/Minute

Pro

100 Anfragen/Minute

Maßstab

250 Anfragen/Minute

Business

500 Anfragen/Minute

Unternehmen

Sonderanfertigungen – kontaktieren Sie uns.


Die monatlichen Abfrageguthaben werden separat ausgewiesen und sind auf der Preisseite aufgeführt.

Wenn Sie Ihr Limit überschreiten, gibt die API den HTTP-Status 429 mit dem Standard-Fehler-Envelope und den Headern „Retry-After“ und „X-RateLimit-Reset“ zurück – warten Sie „Retry-After“-Sekunden, bevor Sie es erneut versuchen.

{"error": {"code": "rate_limited", ...}}

Diese API ist auch mit einem dedizierten Load Balancer und einem Premium-Endpunkt verfügbar, um schnellere Abfragen als Teil unserer Premium-API-Dienste und Enterprise-API-Pakete zu ermöglichen.