API

これらのHTTPエンドポイントはUIと同じデータを返し、スクリプトや監視、独自のクライアントから安全に利用できます(適切なレート制限付き)。

/ip — プレーンテキストIP

検出されたIPのみをテキストで返します。スクリプトやヘルスチェックに最適です。

/ip

レート制限: 120 per minute · 3000 per day

curl -s https://nekoip.ru/ip

/api/info — JSON ペイロード

現在または指定したIPの情報を返します。domain=example.com(またはエンコードしたHTTP(S) URL)を指定すると、すべてのA/AAAAアドレスとメタデータを返します。

/api/info

  • ip — 1.1.1.1 | 2001:db8::1
  • domain — example.com | https://example.com/path

レート制限: 20 per minute

ip または domain 付きのリクエストには、クライアント IP ごとに 60 秒あたり 5 回という追加制限があります。超えると retry_after 付きの 429 を返します。

curl -s "https://nekoip.ru/api/info?ip=1.1.1.1" | jq '.'
curl -s "https://nekoip.ru/api/info?domain=example.com" | jq '.'

/api/ipv4-probe と /api/ipv6-probe

利用可能ならそれぞれの IP のみを返し、無い場合は 204 を返します。下記のシングルスタック専用ホスト名を呼び出してください。メインドメインでは現在の接続のアドレスを返すだけです。

https://ipv4.nekoip.ru/api/ipv4-probe / https://ipv6.nekoip.ru/api/ipv6-probe

レート制限: 60 per minute

curl -s https://ipv4.nekoip.ru/api/ipv4-probe
curl -s https://ipv6.nekoip.ru/api/ipv6-probe

/api/dns-leak-test — リゾルバーログ

ホームページのウィジェットが発行した id パラメーターを指定すると、DNS リークドメインへ問い合わせたリゾルバー IP を取得できます。

/api/dns-leak-test

  • id — a1b2c3d4e5f6 (必須)

レート制限: 30 per minute

curl -s "https://nekoip.ru/api/dns-leak-test?id=TEST_ID"

API v1 · ネットワークツール

IP計算、DNS・メール・登録情報の受動診断に加え、NekoIPだけへ通信する任意の能動的な接続テストを利用できます。

Access-Control-Allow-Origin: * · application/json · text/plain

レスポンスの構造

v1 の各ツールは同じ JSON 構造で応答します。ok、結果を含む data、severity 付きの findings、そして request_id、cached、stale、duration_ms、retrieved_at、sources を含む meta です。format=text(または Accept: text/plain)を指定すると、同じデータを「キー: 値」形式の行で受け取れます。

{
  "ok": true,
  "data": { "network": "10.0.0.0/24", "usable_addresses": 254 },
  "findings": [
    { "code": "network_valid", "severity": "ok", "message": "...", "details": {} }
  ],
  "meta": {
    "request_id": "57f47f834af86d2f",
    "cached": false,
    "stale": false,
    "duration_ms": 0,
    "retrieved_at": "2026-01-01T00:00:00+00:00",
    "sources": []
  }
}

エラー

エラーも同じ形式で、ok=false と error オブジェクトを返します。code は安定した識別子、message は常に英語の説明、fields は不正なパラメーターを示します。主なステータス: 400 入力不正、404 未知または期限切れのセッション、429 レート制限超過、503 ツール無効または上位ソース停止。

{
  "ok": false,
  "error": {
    "code": "invalid_dns_name",
    "message": "Enter a fully-qualified DNS owner name.",
    "fields": { "domain": "invalid" }
  },
  "meta": { "request_id": "858db277f46d825b" }
}

/api/v1/tools/ の応答には常に RateLimit-Policy ヘッダーが含まれ、制限ありのエンドポイントでは RateLimit-Limit、RateLimit-Remaining、RateLimit-Reset も返します。制限を超えると error.code=rate_limit_exceeded と Retry-After ヘッダー付きの 429 を返します。

サブネット・CIDR計算

IPv4/IPv6ネットワーク、範囲からCIDRへの変換、集約、分割、所属判定を行います。

GET /api/v1/tools/subnet?network=10.0.0.0%2F24

パラメーター:

  • operation — analyze (default) | range | aggregate | contains | split
  • network — 10.0.0.0/24 (analyze, contains, split)
  • start — 10.0.0.1 (range)
  • end — 10.0.0.254 (range)
  • networks — 10.0.0.0/25,10.0.0.128/25 (aggregate)
  • ip — 10.0.0.15 (contains)
  • new_prefix — 26 (split)
  • format — json (default) | text | csv

レート制限: offline — 制限なし。外部への問い合わせなしでローカルに計算します

レスポンス形式: application/json · text/plain · text/csv

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/subnet?network=10.0.0.0%2F24'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/subnet?network=10.0.0.0%2F24'

IPアドレス変換

IPv4/IPv6を圧縮、展開、整数、16進数、2進数形式の間で変換します。

GET /api/v1/tools/ip-converter?ip=2001%3Adb8%3A%3A1

パラメーター:

  • ip — 2001:db8::1 | 192.0.2.10 | 3221225994 (必須)
  • format — json (default) | text

レート制限: offline — 制限なし。外部への問い合わせなしでローカルに計算します

レスポンス形式: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/ip-converter?ip=2001%3Adb8%3A%3A1'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/ip-converter?ip=2001%3Adb8%3A%3A1'

DNSレコード検索

NekoIPの検証リゾルバーでDNSを照会し、TTL、rcode、DNSSEC認証を表示します。

GET /api/v1/tools/dns?domain=example.com&type=A

パラメーター:

  • domain — example.com (必須)
  • type — A (default) | AAAA | ALL | CAA | CNAME | DNSKEY | DS | HTTPS | MX | NS | PTR | SOA | SRV | SVCB | TLSA | TXT
  • format — json (default) | text

レート制限: 30;w=60, 300;w=3600

レスポンス形式: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/dns?domain=example.com&type=A'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/dns?domain=example.com&type=A'

メールDNS・SPF確認

メールサーバーへ接続せず、MX、SPF、DMARC、DKIM、MTA-STS、TLS-RPT、BIMIを確認します。

GET /api/v1/tools/email-dns?domain=example.com

パラメーター:

  • domain — example.com (必須)
  • selector — default | google | selector1
  • format — json (default) | text

レート制限: 30;w=60, 300;w=3600

レスポンス形式: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/email-dns?domain=example.com'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/email-dns?domain=example.com'

メールポリシー生成

JSON ボディから DKIM レコードを解析し、SPF や DMARC レコードを生成します。完全にオフラインで、このエンドポイントでは DNS 問い合わせを行いません。

POST /api/v1/tools/email-policy

パラメーター:

  • operation — parse_dkim | generate_spf | generate_dmarc (必須)
  • record — v=DKIM1; k=rsa; p=... (parse_dkim)
  • ipv4 — ["192.0.2.10"] (generate_spf)
  • ipv6 — ["2001:db8::1"] (generate_spf)
  • includes — ["_spf.example.net"] (generate_spf)
  • policy — ~all | -all | ?all (generate_spf) · none | quarantine | reject (generate_dmarc)
  • pct — 100 (generate_dmarc)
  • rua — mailto:dmarc@example.com (generate_dmarc)
  • subdomain_policy — none | quarantine | reject (generate_dmarc)

レート制限: offline — 制限なし。外部への問い合わせなしでローカルに計算します

レスポンス形式: application/json

curl -X POST -H 'Content-Type: application/json' \
     -d '{"operation": "generate_spf", "ipv4": ["192.0.2.10"], "includes": ["_spf.example.net"], "policy": "~all"}' \
     'https://nekoip.ru/api/v1/tools/email-policy'

PTR・FCrDNSを確認

IPのPTR名を検索し、元のアドレスへ正引きできるか確認します。

GET /api/v1/tools/reverse-dns?ip=8.8.8.8

パラメーター:

  • ip — 8.8.8.8 | 2001:4860:4860::8888 (必須)
  • format — json (default) | text

レート制限: 30;w=60, 300;w=3600

レスポンス形式: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/reverse-dns?ip=8.8.8.8'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/reverse-dns?ip=8.8.8.8'

WHOIS・RDAP検索

ドメイン、IP、ASNの登録情報とEPPステータスの説明を表示します。

GET /api/v1/tools/whois-rdap?query=example.com

パラメーター:

  • query — example.com | 8.8.8.8 | AS15169 (必須)
  • format — json (default) | text

レート制限: 10;w=60, 60;w=3600

レスポンス形式: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/whois-rdap?query=example.com'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/whois-rdap?query=example.com'

受動的ドメイン分析

対象サイトへ接続せず、DNS、メール保護、登録情報、IDN、PTRをまとめます。

GET /api/v1/tools/domain-analysis?domain=example.com

パラメーター:

  • domain — example.com (必須)
  • format — json (default) | text

レート制限: 5;w=60, 30;w=3600

レスポンス形式: application/json · text/plain

curl -H 'Accept: application/json' 'https://nekoip.ru/api/v1/tools/domain-analysis?domain=example.com'
curl -H 'Accept: text/plain' 'https://nekoip.ru/api/v1/tools/domain-analysis?domain=example.com'

/api/v1/tools/dns-resolver/sessions と /api/v1/tools/connection-quality/sessions はブラウザーのウィジェット専用です。同一オリジンのリクエストが必要で、CORS ヘッダーを返さず、公開 API には含まれません。