IP情報の照会

IPアドレスの地理的位置、ISP、ASNなどの詳細情報を照会します

照会設定

照会結果

IPアドレスを入力するか、「自分のIPを検出」をクリックして照会を開始してください

プライバシーとセキュリティ

本ツールでIP情報を照会する際は、以下の点にご注意ください:

  • ℹ️ 照会リクエストはサードパーティのAPIに送信されます。当方は照会履歴を一切記録しません。
  • ℹ️ IP地理情報は通常、都市レベルまでしか特定できません。具体的な住所を特定することはできません。
  • ℹ️ 家庭用ブロードバンドのほとんどは動的IPを使用しており、IPアドレスは定期的に変更されます。
  • ℹ️ VPNまたはプロキシをご利用の場合、照会結果にはプロキシサーバーの情報が表示されます。

使用シナリオ

セキュリティチェック

アクセスログ内の疑わしいIPアドレスの出所を確認し、潜在的なセキュリティ脅威を特定します。

ネットワークのデバッグ

ネットワーク接続問題をトラブルシューティングし、サーバーまたはCDNノードの地理的位置を確認します。

地理的ロケーション

ユーザーのIPアドレスに基づいて、ローカライズされたコンテンツ、言語、またはサービス(例:CDN配信)を提供します。

よくある質問

IPアドレスの位置情報は正確ですか?

IP地理情報は通常、都市レベルまで正確ですが、数十〜数百キロの誤差が生じる場合があります。具体的な街道や番地まで特定することはできません。

なぜ私のIPアドレスは変化するのですか?

家庭用ブロードバンドでは、ほとんどの場合動的IPアドレス割り当て(DHCP)が使用されており、ISPが定期的にIPを変更します。企業やサーバーでは通常、固定IP(静的IP)が使用されます。

自分の実際のIPアドレスを隠すにはどうすればよいですか?

VPN、プロキシサーバー、またはTorネットワークを使用して実際のIPを隠すことができます。ただし、これらのサービスはネットワーク速度の低下や、一部のウェブサイトへのアクセス制限を引き起こす可能性があります。

なぜ私は2つのIPアドレスを持っているのですか?

IPv4とIPv6の両方のアドレスを持っている可能性があります。現代のネットワークはIPv4からIPv6へ移行中であり、多くのデバイスが両方のプロトコルをサポートしています。

IPアドレスとは?

IP(Internet Protocol)アドレスは、インターネット上のデバイスを一意に識別する番号で、現実世界の住所に似ています。インターネットに接続されたすべてのデバイスにはIPアドレスが割り当てられ、ネットワーク内での位置特定と通信に使用されます。

IPv4 と IPv6:なぜIPv6が必要なのか?

IPv4(1981年)

形式:4つの10進数の組(例:192.168.1.1)

合計:約43億アドレス(2³² = 4,294,967,296)

問題:アドレスが枯渇寸前で、2011年にはすでに割り当てが完了しました

長さ:32ビット

IPv6(1998年)

形式:16進数8組(例:2001:0db8::1)

総数:約340垓億億億個のアドレス(2¹²⁸)

利点:アドレス数がほぼ無限で、地球の砂粒1粒につき1つ割り当てても余る

長さ:128ビット

なぜIPv4は不足しているのか?

  • • 世界人口は80億人で、1人あたり最低2〜3台のデバイス(スマートフォン、PC、タブレット)を所有
  • • IoTデバイスが爆発的に増加(スマートホーム、自動車、ウェアラブル機器)
  • • 企業やデータセンターは大量のIPアドレスを必要とする
  • • 初期の割り当てが不適切(例:MITは1600万個のIPを保有)

特殊なIPアドレス範囲

ループバックアドレス

127.0.0.0/8(127.0.0.1 - 127.255.255.255)

ローカルホストでのテスト用。データはネットワークに出力されず、localhostを表すには通常127.0.0.1を使用

用途:ローカルサービスのテスト、開発・デバッグ

プライベートアドレス

  • 10.0.0.0/8(10.0.0.0 - 10.255.255.255)- クラスA
  • 172.16.0.0/12(172.16.0.0 - 172.31.255.255)- クラスB
  • 192.168.0.0/16(192.168.0.0 - 192.168.255.255)- クラスC

ローカルネットワーク内で使用。直接インターネットにアクセスできず、NAT変換が必要

用途:家庭ネットワーク、企業内ネットワーク

APIPAアドレス

169.254.0.0/16

DHCPサーバーが利用できない場合、システムが自動的に割り当てる一時的なアドレス

用途:自動設定(ネットワーク設定失敗を示す)

マルチキャストアドレス

224.0.0.0/4(224.0.0.0 - 239.255.255.255)

1対多通信に使用。例:動画ライブ配信、IPTV

予約済みアドレス

  • 0.0.0.0/8 - 「このネットワーク」を表す
  • 255.255.255.255 - ブロードキャストアドレス
  • 192.0.2.0/24 - ドキュメント例専用
  • 198.18.0.0/15 - ベンチマークテスト専用

最強パブリックDNSサーバー

Google DNS

8.8.8.8 / 8.8.4.4

2001:4860:4860::8888 / 2001:4860:4860::8844

世界で最も速く、安定しており、DNSSECをサポート

Cloudflare DNS

1.1.1.1 / 1.0.0.1

2606:4700:4700::1111 / 2606:4700:4700::1001

プライバシー重視、超高速、ログ記録なし

Quad9 DNS

9.9.9.9 / 149.112.112.112

セキュリティ保護、悪性サイトのブロック

OpenDNS

208.67.222.222 / 208.67.220.220

親の監視、コンテンツフィルタリング

アジア地域 DNS

  • 阿里雲 DNS(中国):223.5.5.5 / 223.6.6.6
  • DNSPod(中国):119.29.29.29
  • 114 DNS(中国):114.114.114.114

興味深い IP 知識

💰 最も高価な IP アドレス範囲

1.0.0.0/8 は、APNIC が研究目的で数百万ドルで購入しました。特定の「プレミアム」IPアドレス(例:8.8.8.8、1.1.1.1)は非常に価値があり、Cloudflare は通信会社から 1.1.1.1 を高額で購入しました。

📍 なぜ同じ IP で異なる場所が表示されるのですか?

  • • IP 地理位置データベースの違い(各 API のデータソースが異なる)
  • • 動的 IP アドレスの変更(プロバイダーによる再割り当て)
  • • VPN/プロキシサーバー(プロキシサーバーの位置が表示されます)
  • • CDN ノード(最も近い CDN サーバーの位置が表示されます)
  • • モバイルネットワーク(基地局の位置が不正確な場合があります)

📊 IPv6 の導入率

2024年現在、世界全体の IPv6 導入率は約40%で、インド、アメリカ、ドイツがリードしています。中国は約30%です。ベルギーは世界で最も IPv6 導入率が高い国で、60%を超えています。

🎂 最初の IP アドレス

1983年1月1日、インターネットは正式に TCP/IP プロトコルを採用し、最初の IP アドレスが誕生しました。BBN Technologies のレナード・クラインロック氏が、最初に IP アドレスを使用した人物とされています。

🗑️ IP アドレスの不均衡な割り当て

初期のインターネットでは、IP アドレスの割り当てが非常に豪快でした。MIT(1つの大学)は 1600万の IP(全体の 18.0.0.0/8)を所有し、アップルは 1600万の IP(17.0.0.0/8)を保有していました。一方、中国全土には約3.3億の IP しか割り当てられず、10億人以上のインターネットユーザーを支える必要があります。1人あたり2台のデバイスを想定すると、最低でも20億の IP が必要です。この不均衡な分配により、中国は大量の NAT 技術を使用して IP を共有せざるを得ませんでした。

🚫 IP ブラックリスト

世界には複数のIPブラックリストデータベース(例:Spamhaus)があり、スパムメール、マルウェア、DDoS攻撃などの発信元IPを特定するために使用されます。IPがブラックリストに登録されると、メールが拒否されたり、ウェブサイトがブロックされたりする可能性があります。

🤯 IP地理情報の奇妙な事例

アメリカ・カンザス州の一般家庭が、MaxMind社のIPデータベースでデフォルト位置(緯度38°N、経度97°W、米国地理的中心)として設定されたため、数百万の正確な位置が特定できないIPアドレスがすべてこの場所を指すようになってしまいました。この家庭は不本意にも「アメリカ全土のハッカーの拠点」とされ、FBIや警察、債権者、詐欺被害者からの多数の電話や訪問、さらには夜中に家に押し入る事件まで発生しました。2016年、この家庭はMaxMindを訴え、最終的に賠償を勝ち取りました。

💸 IPv4アドレスは売買可能

IPv4アドレスの枯渇により、IPアドレスは取引可能な商品となりました。闇市場での価格は1アドレスあたり40ドルに達することもあります。2011年、マイクロソフトは破産したNortel社から66.6万個のIPアドレスを750万ドルで購入し、平均して1アドレス約11.25ドルでした。2014年には、アマゾンやマイクロソフトなどの大手テクノロジー企業がIPv4アドレスを争奪し、価格は一時的に急騰しました。

🤦 IPv4設計者の"見誤り"

1981年、IPv4の設計者たちは「42億のアドレスがあれば、人類が一生かけても使い切れない」と考えていました。彼らはインターネットが今日のような規模に発展するとは全く予想していませんでした。現在、世界人口は80億人を超え、一人あたり少なくとも2〜3台のデバイスを持ち、IoTデバイスも爆発的に増加しています。当初、64ビットまたは128ビットのアドレス空間を採用していたら、今日のアドレス枯渇問題は起きなかったでしょう。

🏠 127.0.0.1の秘密

127.0.0.1(localhost)は単なる1つのアドレスではなく、127.0.0.0/8ブロック全体(約1600万個のアドレス)がループバックアドレスです。127.0.0.2や127.1.2.3など、この範囲内の任意のアドレスにpingを打っても、すべて自身のマシンに到達します。

⏰ IPv4アドレス枯渇のタイムライン

2011年2月3日、IANAが最後のIPv4アドレスブロックを割り当てました。2011年4月15日、アジア・パシフィック地域(APNIC)が枯渇。2012年9月、ヨーロッパ(RIPE NCC)が枯渇。2015年9月、北米(ARIN)が枯渇しました。

📏 最長のIPアドレス

IPv6アドレスは最大で39文字(8グループ、各グループ4桁の16進数と7つのコロン)で表すことができます。しかし、省略規則を使用すると、::1のように大幅に短縮できます。これはIPv6のループバックアドレスを表します。

🚀 IPアドレスとネットワーク速度は無関係です

多くの人が、IPアドレスを変更すればネットワーク速度が向上すると誤解していますが、実際にはIPアドレスはネットワーク上の「住所」にすぎず、速度は帯域幅、ルーティング、サーバーの状況などの要因によって決まり、IPアドレスそのものとは無関係です。

IPv6の特徴と利点・欠点

利点

  • 膨大なアドレス空間:2¹²⁸個のアドレスを提供し、ほぼ無限です
  • ルーティングの簡素化:階層的なアドレス構造により、ルーティングテーブルが小さくなります
  • 自動設定:DHCP不要でSLAACをサポート
  • より高いセキュリティ:IPsecを内蔵
  • 優れたQoS:フローラベルフィールドによりリアルタイムアプリケーションを最適化
  • NAT不要:各デバイスにパブリックIPが割り当てられます
  • モビリティ対応:モバイルデバイスのサポートが向上

欠点

  • 互換性の問題:デバイスやネットワークの対応が必要です
  • 学習コスト:アドレス形式が複雑で覚えにくい
  • 移行コスト:デバイスやソフトウェアのアップグレードが必要です
  • デュアルスタック運用:移行期間中はIPv4とIPv6の両方を同時にサポートする必要があります

関連するIP情報照会サービス

本ツールは以下のAPIを活用してサービスを提供しており、以下に他の優れたIP照会サービスをご紹介します:

IP-API.com

このツールで使用 ⭐

このツールで主に使用するAPIです。完全無料(商用目的を除く)、一括照会をサポートし、JSON/XML/CSV形式を提供します。制限:1分あたり45回。

IPapi.co

このツールで使用 ⭐

このツールのバックアップAPIです。通貨、言語、接続タイプなどの追加情報を提供します。無料プランは月間30,000回のリクエストを許可します。

IPInfo.io

データが正確、APIが使いやすい

IP情報、ASNデータ、地理情報、企業情報などを詳細に提供します。無料プラン(Free Plan)を提供しています。

IPGeolocation.io

機能が豊富

IPの地理情報、タイムゾーン、通貨、天気情報などを提供します。無料プランは月間30,000回のリクエストを許可します。

MaxMind GeoIP2

最も正確、エンタープライズ級

業界標準のIP地理情報データベースで、精度が非常に高いです。オフラインデータベースとオンラインAPIの両方を提供しています。

IPStack

セキュリティ検出

IPv4およびIPv6をサポートし、プロキシ、VPN、Torの検出などのセキュリティモジュールを提供します。無料プランは月間100回のリクエストを許可します。

IPData.co

脅威インテリジェンス

脅威インテリジェンス、ASN情報、企業データを提供します。無料プランは日間1,500回のリクエストを許可します。

Abstract API

使いやすい

使いやすいIP地理情報APIです。無料プランは月間1,000回のリクエスト、制限は1秒あたり1回です。

IPRegistry

登録で10万回無料

IP地理情報、企業情報、脅威検出、ユーザーのプロキシ解決を提供します。登録後、100,000回の無料クォータをプレゼントします。

DB-IP

オープンソースデータベース

無料のIP地理情報データベースのダウンロードを提供し、オンライン照会サービスも利用できます。

IPify

パブリックIPの取得

パブリックIPアドレスの取得に特化した、シンプルで高速、完全無料のサービスです。

プログラミングでIPアドレスを取得するには?

以下は、さまざまなプログラミング言語で訪問者のIPアドレスを取得するためのサンプルコードです:

Java (Spring Boot)

import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;

@RestController
public class IpController {
    
    @GetMapping('/ip')
    public String getClientIp(HttpServletRequest request) {
        String ip = request.getHeader("CF-Connecting-IP");
        
        if (ip == null || ip.isEmpty()) {
            ip = request.getHeader("X-Forwarded-For");
            if (ip != null) {
                ip = ip.split(",")[0];
            }
        }
        
        if (ip == null || ip.isEmpty()) {
            ip = request.getHeader("X-Real-IP");
        }
        
        if (ip == null || ip.isEmpty()) {
            ip = request.getRemoteAddr();
        }
        
        return ip;
    }
}

PHP

function getClientIp() {
    $ipKeys = [
        'HTTP_CF_CONNECTING_IP',
        'HTTP_X_FORWARDED_FOR',
        'HTTP_X_REAL_IP',
        'REMOTE_ADDR'
    ];
    
    foreach ($ipKeys as $key) {
        if (!empty($_SERVER[$key])) {
            $ips = explode(',', $_SERVER[$key]);
            return trim($ips[0]);
        }
    }
    
    return $_SERVER['REMOTE_ADDR'] ?? 'Unknown';
}

$ip = getClientIp();
echo "Your IP: " . $ip;

JavaScript (Node.js)

const express = require('express');
const app = express();

app.get('/ip', (req, res) => {
    const ip = req.headers['cf-connecting-ip'] ||
                req.headers['x-forwarded-for']?.split(',')[0] || 
                req.headers['x-real-ip'] || 
                req.socket.remoteAddress;
    
    res.json({ ip: ip });
});

app.listen(3000);

Python (Flask)

from flask import Flask, request

app = Flask(__name__)

@app.route('/ip')
def get_ip():
    ip = request.headers.get('CF-Connecting-IP') or \
         request.headers.get('X-Forwarded-For', '').split(',')[0] or \
         request.headers.get('X-Real-IP') or \
         request.remote_addr
    
    return {'ip': ip}

if __name__ == '__main__':
    app.run()

Rust

use actix_web::{web, App, HttpRequest, HttpServer, Responder};

fn get_client_ip(req: &HttpRequest) -> String {
    if let Some(ip) = req.headers().get("CF-Connecting-IP") {
        return ip.to_str().unwrap_or("").to_string();
    }
    
    if let Some(forwarded) = req.headers().get("X-Forwarded-For") {
        if let Ok(forwarded_str) = forwarded.to_str() {
            if let Some(first_ip) = forwarded_str.split(',').next() {
                return first_ip.trim().to_string();
            }
        }
    }
    
    if let Some(ip) = req.headers().get("X-Real-IP") {
        return ip.to_str().unwrap_or("").to_string();
    }
    
    req.peer_addr()
        .map(|addr| addr.ip().to_string())
        .unwrap_or_else(|| "Unknown".to_string())
}

async fn ip_handler(req: HttpRequest) -> impl Responder {
    let ip = get_client_ip(&req);
    format!("Your IP: {}", ip)
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new().route("/ip", web::get().to(ip_handler))
    })
    .bind("127.0.0.1:8080")?
    .run()
    .await
}

Go

package main

import (
    "net/http"
    "strings"
)

func getClientIP(r *http.Request) string {
    if ip := r.Header.Get("CF-Connecting-IP"); ip != "" {
        return ip
    }
    
    if forwarded := r.Header.Get("X-Forwarded-For"); forwarded != "" {
        ips := strings.Split(forwarded, ",")
        return strings.TrimSpace(ips[0])
    }
    
    if ip := r.Header.Get("X-Real-IP"); ip != "" {
        return ip
    }
    
    return r.RemoteAddr
}

func handler(w http.ResponseWriter, r *http.Request) {
    ip := getClientIP(r)
    w.Write([]byte("Your IP: " + ip))
}

func main() {
    http.HandleFunc("/ip", handler)
    http.ListenAndServe(":8080", nil)
}

注意事项:

  • • 注意:ウェブサイトがCDN(例:Cloudflare)やリバースプロキシ(例:Nginx)を使用している場合、実際のIPアドレスは特定のHTTPヘッダーから取得してください。
  • • 優先順位:CF-Connecting-IP > X-Forwarded-For > X-Real-IP > RemoteAddr
  • • X-Forwarded-For には複数のIPアドレス(カンマ区切り)が含まれる場合があり、最初のアドレスがクライアントの実際のIPです。
  • • ブラウザ側のJavaScriptでは直接IPアドレスを取得できず、サードパーティAPIを呼び出す必要があります。