Home / プログラミング / IPアドレスチェッカーを作成してみた!

IPアドレスチェッカーを作成してみた!

$_SERVERを使えば簡単に取得できます。

$_SERVER は、ヘッダ、パス、スクリプトの位置のような 情報を有する配列です。

https://www.php.net/manual/ja/reserved.variables.server.php

今回はこれらの情報を使用して、グローバルIPアドレスや使用しているブラウザの情報を表示するページを作成しました。

日頃、他人様のページを利用させていただいており、自作した次第です。

https://s-okada.org/ipChecker

よければ使ってみて下さい。

サンプルコード

IPアドレスについては、いろいろ試行錯誤と様々な方のコードを参考にした結果、このようなロジックが必要なようです。検証環境用意できてないので試せてませんがcloudflareやプロキシ経由のユーザーアクセスなどを考慮した結果こうなります。

    if (isset($_SERVER['http_cf_connecting_ip'])) {
        $ip = $_SERVER['http_cf_connecting_ip'];
    } elseif (isset($_SERVER['REMOTE_ADDR']) === true) {
        $ip = $_SERVER['REMOTE_ADDR'];
        if (preg_match('/^(?:127|10)\.0\.0\.[12]?\d{1,2}$/', $ip)) {
            if (isset($_SERVER['HTTP_X_REAL_IP'])) {
                $ip = $_SERVER['HTTP_X_REAL_IP'];
            } elseif (isset($_SERVER['http_x_forwarded_for'])) {
                $ip = $_SERVER['http_x_forwarded_for'];
            }
        }
    } else {
        $ip = '127.0.0.1';
    }

ロジックなしで基本的な値を表示する際は下記のような形になります。

<?= $_SERVER['REMOTE_PORT'] ?>
<?= $_SERVER['HTTP_USER_AGENT']; ?>
<?= $_SERVER['HTTP_ACCEPT'];
<?= $_SERVER['HTTP_ACCEPT_LANGUAGE']; ?>
タグ付け処理あり: