ip

ip 解析 IPv4/IPv6、判断地址范围、转换数值表示,并完全使用 PHP 计算 CIDR 网络边界。

网络版本 1.2.2稳定
lil-terminal

概览

需要在不发起网络请求的情况下进行确定性地址计算时使用 ip:转换 IPv4 表示、展开 IPv6、判断私有地址与回环地址范围,或根据前缀计算网络与地址区间。

单个地址与 CIDR 网络回答不同问题

没有前缀时,ip 描述一个地址;带 /prefix 时计算网络边界和范围。ip me 与 ip server 则从当前 HTTP 请求和主机环境读取地址。

语法

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

参考

ip 192.168.1.1

检查 IPv4 地址、数值表示和地址范围属性

ip 3232235777

将无符号整数转换为 IPv4 并检查

ip 0xC0A80101

将十六进制值转换为 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 或 IPv6;IPv4 还接受无符号整数或 0x 十六进制数。加入 /prefix 可得到网络、范围和地址数;IPv4 还显示掩码、通配掩码和广播地址,IPv6 显示末尾地址。ip me 与 ip server 取决于 PHP 环境。

限制与安全

CIDR 计算不扫描在线主机;地址数量不代表可访问设备数量。代理和共享主机会影响显示的 IP。非法地址和前缀会被拒绝。示例使用文档保留地址。

确定性表示

IPv4 可用点分十进制、无符号整数或十六进制输入。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 192.168.1.1
离线教学示例 — 不发送真实请求
Address  192.168.1.1
Family   IPv4
Scope    private
Integer  3232235777
Hex      0xC0A80101
Bytes    192.168.1.1
将无符号整数转换为 IPv4 并检查
ip 3232235777
离线教学示例 — 不发送真实请求
Address  192.168.1.1
Family   IPv4
Scope    private
Integer  3232235777
Hex      0xC0A80101
Bytes    192.168.1.1
将十六进制值转换为 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
显示 IPv4 网络、掩码、wildcard、broadcast 和范围
ip 192.0.2.10/30
离线教学示例 — 不发送真实请求
Address    192.0.2.10
Family     IPv4
Scope      documentation
Integer    3221225994
Hex        0xC000020A
Bytes      192.0.2.10
CIDR       192.0.2.8/30
Network    192.0.2.8
Netmask    255.255.255.252
Wildcard   0.0.0.3
Broadcast  192.0.2.11
Range      192.0.2.8 – 192.0.2.11
Addresses  4
显示 IPv4 网络、掩码、wildcard、broadcast 和范围
ip 0.0.0.0/0
离线教学示例 — 不发送真实请求
Address    0.0.0.0
Family     IPv4
Scope      unspecified
Integer    0
Hex        0x00000000
Bytes      0.0.0.0
CIDR       0.0.0.0/0
Network    0.0.0.0
Netmask    0.0.0.0
Wildcard   255.255.255.255
Broadcast  255.255.255.255
Range      0.0.0.0 – 255.255.255.255
Addresses  4294967296
检查 IPv4 地址、数值表示和地址范围属性
ip 127.0.0.1
离线教学示例 — 不发送真实请求
Address  127.0.0.1
Family   IPv4
Scope    loopback
Integer  2130706433
Hex      0x7F000001
Bytes    127.0.0.1
检查 IPv4 地址、数值表示和地址范围属性
ip 169.254.10.5
离线教学示例 — 不发送真实请求
Address  169.254.10.5
Family   IPv4
Scope    link-local
Integer  2851998213
Hex      0xA9FE0A05
Bytes    169.254.10.5
拒绝无效 IP 地址
ip 100.64.0.1
离线教学示例 — 不发送真实请求
Address  100.64.0.1
Family   IPv4
Scope    shared
Integer  1681915905
Hex      0x64400001
Bytes    100.64.0.1
检查 IPv4 地址、数值表示和地址范围属性
ip 224.0.0.1
离线教学示例 — 不发送真实请求
Address  224.0.0.1
Family   IPv4
Scope    multicast
Integer  3758096385
Hex      0xE0000001
Bytes    224.0.0.1
检查 IPv4 地址、数值表示和地址范围属性
ip 203.0.113.3
离线教学示例 — 不发送真实请求
Address  203.0.113.3
Family   IPv4
Scope    documentation
Integer  3405803779
Hex      0xCB007103
Bytes    203.0.113.3
检查 IPv4 地址、数值表示和地址范围属性
ip 255.255.255.255
离线教学示例 — 不发送真实请求
Address  255.255.255.255
Family   IPv4
Scope    broadcast
Integer  4294967295
Hex      0xFFFFFFFF
Bytes    255.255.255.255
显示 IPv6 压缩/完整形式和地址范围属性
ip ::1
离线教学示例 — 不发送真实请求
Address     ::1
Family      IPv6
Scope       loopback
Compressed  ::1
Expanded    0000:0000:0000:0000:0000:0000:0000:0001
Hex         0x00000000000000000000000000000001
显示 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
显示 IPv6 网络、最后地址和范围
ip fe80::1/128
离线教学示例 — 不发送真实请求
Address     fe80::1
Family      IPv6
Scope       link-local
Compressed  fe80::1
Expanded    fe80:0000:0000:0000:0000:0000:0000:0001
Hex         0xFE800000000000000000000000000001
CIDR        fe80::1/128
Network     fe80::1
Last        fe80::1
Range       fe80::1 – fe80::1
Addresses   1
显示 IPv6 压缩/完整形式和地址范围属性
ip fc00::1
离线教学示例 — 不发送真实请求
Address     fc00::1
Family      IPv6
Scope       private
Compressed  fc00::1
Expanded    fc00:0000:0000:0000:0000:0000:0000:0001
Hex         0xFC000000000000000000000000000001
检查当前访问者地址
ip me
离线教学示例 — 不发送真实请求
Address  8.8.8.8
Family   IPv4
Scope    public
Integer  134744072
Hex      0x08080808
Bytes    8.8.8.8
检查当前服务器地址
ip server
离线教学示例 — 不发送真实请求
Address  192.0.2.3
Family   IPv4
Scope    documentation
Integer  3221225987
Hex      0xC0000203
Bytes    192.0.2.3
Ip · 20
ip 256.1.1.1
离线教学示例 — 不发送真实请求
Invalid IP address
Ip · 21
ip 192.0.2.10/33
离线教学示例 — 不发送真实请求
Invalid prefix
Ip · 22
ip 2001:db8::1/129
离线教学示例 — 不发送真实请求
Invalid prefix
Ip · 23
ip 4294967296
离线教学示例 — 不发送真实请求
IPv4 integer is out of range
Ip · 24
ip 192.0.2.1/abc
离线教学示例 — 不发送真实请求
Invalid prefix

本示例使用的文件: 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 与确定性的地址转换分开。