Référence développeur
Géolocalisation IP
API DomScan : Intelligence IP incluant la géolocalisation, l'ASN et les détails réseau, ainsi que des signaux de sécurité.
Géolocalisation IP
Intelligence IP incluant la géolocalisation, l'ASN et les détails réseau, ainsi que des signaux de sécurité. Prend en charge les recherches d'IP directes et la résolution de domaines. Inclut la détection des nœuds de sortie Tor, l'identification des fournisseurs de cloud et la détection des centres de données pour la prévention de la fraude et l'analyse de sécurité.
GET
/v1/ip
Crédits: 1
Paramètres de requête
| Paramètre | Type | requis |
|---|---|---|
| ip | string | optionnel |
| domain | string | optionnel |
Champs de réponse
| Champ | Type |
|---|---|
ip |
string |
domain |
string | null |
geolocation |
object |
geolocation.country |
string | null |
geolocation.country_name |
string | null |
geolocation.region |
string | null |
geolocation.region_name |
string | null |
geolocation.city |
string | null |
geolocation.postal |
string | null |
geolocation.latitude |
number | null |
geolocation.longitude |
number | null |
geolocation.timezone |
string | null |
geolocation.precision |
string |
network |
object |
network.asn |
integer | null |
network.asn_name |
string | null |
network.asn_org |
string | null |
network.isp |
string | null |
network.connection_type |
string | null |
security |
object |
security.is_proxy |
boolean |
security.is_vpn |
boolean |
security.is_tor |
boolean |
security.is_tor_exit |
boolean |
security.is_datacenter |
boolean |
security.is_cloud |
boolean |
security.cloud_provider |
string | null |
security.threat_score |
integer |
security.is_vpn_suspected |
boolean |
security.vpn_suspected_provider |
string | null |
security.type_classification |
object |
security.type_classification.type |
string |
security.type_classification.confidence |
string |
security.fcrdns |
object |
security.fcrdns.ptr |
string | null |
security.fcrdns.fcrdns_valid |
boolean | null |
intelligence_summary |
object |
intelligence_summary.query_type |
string |
intelligence_summary.domain_resolved |
boolean |
intelligence_summary.cache_status |
string |
intelligence_summary.data_source |
string |
intelligence_summary.confidence |
string |
intelligence_summary.confidence_score |
integer |
intelligence_summary.asn_present |
boolean |
intelligence_summary.organization_present |
boolean |
intelligence_summary.country_present |
boolean |
intelligence_summary.security_signal_count |
integer |
intelligence_summary.risk_flags[] |
string[] |
intelligence_summary.hosting_category |
string |
meta |
object |
meta.query_time_ms |
integer |
meta.cached |
boolean |
meta.source |
string |
meta.data_updated_at |
string | null |
meta.attribution |
object |
meta.attribution.name |
string |
meta.attribution.url |
string |
meta.attribution.license |
string |
meta.attribution.license_url |
string |
meta.attribution.modified |
boolean |
meta.warning_code |
string | null |
Exemple de requête
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/ip?ip=8.8.8.8&domain=status.openai.com"const response = await fetch("https://domscan.net/v1/ip?ip=8.8.8.8&domain=status.openai.com", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/ip?ip=8.8.8.8&domain=status.openai.com",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/ip?ip=8.8.8.8&domain=status.openai.com", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/ip?ip=8.8.8.8&domain=status.openai.com")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))Exemple de réponse
{
"ip": "8.8.8.8",
"domain": null,
"geolocation": {
"country": "US",
"country_name": "United States",
"region": null,
"region_name": "California",
"city": "Mountain View",
"postal": null,
"latitude": 37.422,
"longitude": -122.085,
"timezone": null,
"precision": "city"
},
"network": {
"asn": 15169,
"asn_name": "AS15169",
"asn_org": "Google LLC",
"isp": null,
"connection_type": "hosting"
},
"security": {
"is_proxy": false,
"is_vpn": false,
"is_tor": false,
"is_tor_exit": false,
"is_datacenter": true,
"is_cloud": true,
"cloud_provider": "Google Cloud",
"threat_score": 0,
"type_classification": {
"type": "datacenter",
"confidence": "high"
},
"fcrdns": {
"ptr": "dns.google",
"fcrdns_valid": true
}
},
"intelligence_summary": {
"query_type": "ip",
"domain_resolved": false,
"cache_status": "miss",
"data_source": "db-ip-lite+enrichment",
"confidence": "high",
"confidence_score": 100,
"asn_present": true,
"organization_present": true,
"country_present": true,
"security_signal_count": 2,
"risk_flags": [
"cloud",
"datacenter"
],
"hosting_category": "cloud"
},
"meta": {
"query_time_ms": 118,
"cached": false,
"source": "db-ip-lite+enrichment",
"data_updated_at": "2026-08-01T01:42:04.000Z",
"attribution": {
"name": "DB-IP Lite",
"url": "https://db-ip.com",
"license": "CC BY 4.0",
"license_url": "https://creativecommons.org/licenses/by/4.0/",
"modified": true
}
}
}
Codes de statut HTTP
200OK400Requête incorrecte401Non autorisé402Paiement requis429Trop de requêtes503Service indisponible504Délai d’attente de la passerelle dépassé