ip

ip は IPv4/IPv6 を解釈し、アドレス範囲を分類し、数値表現を変換し、CIDR 境界を PHP だけで計算します。

ネットワークバージョン 1.2.2安定版
lil-terminal

概要

ネットワーク問い合わせを行わずに確定的なアドレス計算をしたいときは ip を使います。IPv4 表現の変換、IPv6 の展開、プライベートアドレスやループバック範囲の判定、プレフィックスからのネットワーク範囲計算ができます。

単一アドレスと CIDR ネットワークは別の問い

プレフィックスなしでは ip は一つのアドレスを説明します。/prefix 付きではネットワーク境界と範囲を計算します。ip meip server は現在の HTTP リクエストとホスティング環境からアドレスを読みます。

構文

lil-terminal
ip <address|integer|hex|me|server>[/prefix]

リファレンス

ip 192.168.1.1

IPv4 アドレス、数値表現、スコープを確認

ip 3232235777

符号なし整数を IPv4 に変換して確認

ip 0xC0A80101

16 進数を IPv4 に変換して確認

ip 192.168.1.10/24

IPv4 ネットワーク、マスク、wildcard、broadcast、範囲を表示

ip 2001:db8::1

IPv6 の圧縮形・展開形とスコープを表示

ip 2001:db8::1/64

IPv6 ネットワーク、最終アドレス、範囲を表示

ip me

現在の訪問者アドレスを確認

ip server

現在のサーバーアドレスを確認

決定的な形式

IPv4 はドット表記、符号なし整数、16 進数で入力できます。IPv6 は圧縮形と展開形を表示し、プレフィックス付きではネットワーク、範囲、アドレス数も計算します。me と server は現在の HTTP 環境に依存します。

インタラクティブな sandbox プレビュー

用意された例をページ上でそのまま実行できます。結果は事前に生成されてブラウザに表示され、サーバーではターミナルコマンドを実行しません。

サーバーと訪問者のアドレスを比較する

インストールと管理

現在の互換バージョンをインストールします。全機能は Base、縮小版は Minimum を選び、すでに導入済みのモジュール更新には upgrade を使います。

Base と Minimum は同じ現在のモジュールリリースの二つのパッケージです。

Base パッケージ

ローカル参照と公開済みの全モードを含む完全パッケージをインストールします。

install ip
Minimum パッケージ

縮小パッケージをインストールします。ローカルリファレンスは含まれず、help <cmd> -i で現在のサーバーリファレンスを開きます。

install ip -m
正確な公開版

この公開済みバージョンを正確に指定してインストールします。

install ip -v 1.2.2
確認または更新

upgrade が互換性を確認し、必要な場合だけブロックを置換します。

upgrade ip
モジュールを削除

コアや他のモジュールに触れず拡張ブロックを削除します。

install ip -u

例はコピーできますが、サイトは実行しません。実プロジェクトではパス、権限、破壊的オプションを確認してください。

サーバーと訪問者のアドレスを比較する
ip server | ip me
アドレス  203.0.113.10
ファミリー   IPv4
範囲    documentation

アドレス  198.51.100.24
ファミリー   IPv4
範囲    documentation
符号なし整数を IPv4 に変換して確認
ip 3232235777
Address    192.168.1.1
Family     IPv4
Scope      private
Integer    3232235777
Hex        0xC0A80101
Bytes      192.168.1.1
16 進数を IPv4 に変換して確認
ip 0xC0A80101
Address    192.168.1.1
Family     IPv4
Scope      private
Integer    3232235777
Hex        0xC0A80101
Bytes      192.168.1.1
IPv4 ネットワーク、マスク、wildcard、broadcast、範囲を表示
ip 192.168.1.10/24
Address    192.168.1.10
Family     IPv4
Scope      private
Integer    3232235786
Hex        0xC0A8010A
Bytes      192.168.1.10
CIDR       192.168.1.0/24
Network    192.168.1.0
Netmask    255.255.255.0
Wildcard   0.0.0.255
Broadcast  192.168.1.255
Range      192.168.1.0 – 192.168.1.255
Addresses  256
IPv6 の圧縮形・展開形とスコープを表示
ip 2001:db8::1
Address     2001:db8::1
Family      IPv6
Scope       documentation
Compressed  2001:db8::1
Expanded    2001:0db8:0000:0000:0000:0000:0000:0001
Hex         0x20010DB8000000000000000000000001
IPv6 ネットワーク、最終アドレス、範囲を表示
ip 2001:db8::1/64
Address     2001:db8::1
Family      IPv6
Scope       documentation
Compressed  2001:db8::1
Expanded    2001:0db8:0000:0000:0000:0000:0000:0001
Hex         0x20010DB8000000000000000000000001
CIDR        2001:db8::/64
Network     2001:db8::
Last        2001:db8::ffff:ffff:ffff:ffff
Range       2001:db8:: – 2001:db8::ffff:ffff:ffff:ffff
Addresses   18446744073709551616
現在の訪問者アドレスを確認
ip me
Address  198.51.100.24
Family   IPv4
Scope    documentation
(example: actual visitor address depends on the request)
現在のサーバーアドレスを確認
ip server
Address  203.0.113.10
Family   IPv4
Scope    documentation
(example: actual server address depends on the host)
無効な IP アドレスを拒否する
ip 999.999.999.999
IP アドレスが無効です

この例で使うファイル: sandbox/config/app.json

例では、保護されたドキュメント用 /sandbox/ ワークスペースのファイルまたはディレクトリを使います。

{
  "name": "lil-sandbox",
  "debug": true,
  "features": ["files", "code", "archives"],
  "limits": {
    "upload_mb": 2,
    "history": 25
  }
}

関連ドキュメント

現在の公開版

v1.2.22026-08-08

より明確な me/server 形式

現在のリクエスト依存の me/server を決定的なアドレス変換から分離します。