> For the complete documentation index see https://domscan.net/llms.txt. Markdown versions of every docs page are available by appending .md to the page URL.

Source: https://domscan.net/ru/docs/ip-lookup

# Геолокация IP

DomScan API для анализа доменов: Данные об IP, включая геолокацию, сведения об ASN и сети и сигналы безопасности.

Данные об IP, включая геолокацию, сведения об ASN и сети и сигналы безопасности. Поддерживает как прямой поиск по IP, так и разрешение доменов. Включает обнаружение выходных узлов Tor, определение облачных провайдеров и определение дата-центров для предотвращения мошенничества и анализа безопасности.

GET /v1/ip Кредиты: 1

#### Параметры запроса

| Параметр | Тип | обязателен |
| --- | --- | --- |
| ip | string | опционально |
| domain | string | опционально |

#### Поля ответа

| Поле | Тип |
| --- | --- |
| `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 |

#### Пример запроса

```bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/ip?ip=8.8.8.8&domain=status.openai.com"
```

```javascript
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);
```

```python
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())
```

```go
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))
}
```

```ruby
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))
```

#### Пример ответа

```json
{
  "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
    }
  }
}
```

#### Коды состояния HTTP

- `200` OK
- `400` Неверный запрос
- `401` Не авторизован
- `402` Требуется оплата
- `429` Слишком много запросов
- `503` Сервис недоступен
- `504` Тайм-аут шлюза
