网络计算工具ipcalc详解

发布于:2025-09-05 ⋅ 阅读:(13) ⋅ 点赞:(0)

目录

1. 选项速查表

2. 用法示例

2.1 计算广播地址

2.2 显示 IP 地址对应的主机名

2.3 由给定的 IP 地址计算默认的网络掩码

2.4 显示给定掩码或 IP 地址的前缀长度

2.5 计算网络地址

2.6 验证 IP 地址合法性

2.7 计算网络地址、广播地址和前缀长度(合并输出)

2.8 在脚本中使用 ipcalc 进行网络划分

3. 说明与注意事项


ipcalc 是一个实用的网络计算工具,用于 IP 地址的相关计算和验证。下面我用一个表格汇总它的主要选项和功能,然后通过一些实战案例来展示其用法。

1. 选项速查表

选项 (短格式) 选项 (长格式) 功能描述 使用示例
-c --check 验证 IP 地址的合法性 ipcalc -c 192.168.1.1
-b --broadcast 计算广播地址 ipcalc -b 192.168.1.10 255.255.255.0
-h --hostname 显示 IP 地址对应的主机名 (通常查询本地配置) ipcalc -h 192.168.1.1
-m --netmask 由给定的 IP 地址计算默认的网络掩码 ipcalc -m 192.168.1.10
-p --prefix 显示给定掩码或 IP 地址的前缀长度 ipcalc -p 192.168.1.10 255.255.252.0
-n --network 计算网络地址 ipcalc -n 192.168.1.10 255.255.252.0
-s --silent 安静模式,不显示任何错误信息 ipcalc -s 192.168.1.1000 (无效地址时不报错)
-4 --ipv4 指定 IPv4 地址族 (默认) ipcalc -4 192.168.1.1
-6 --ipv6 指定 IPv6 地址族 ipcalc -6 2001:db8::1
--help 显示帮助信息 ipcalc --help

2. 用法示例

2.1 计算广播地址

[root@centos79-20251123 ~]# ipcalc -b 192.168.1.10 255.255.255.0
BROADCAST=192.168.1.255

2.2 显示 IP 地址对应的主机名

[root@centos79-20251123 ~]# ipcalc -h  192.168.0.61
HOSTNAME=izbp16dptcafekynqfdw6yz
[root@centos79-20251123 ~]# ipcalc -h   114.114.114.114
HOSTNAME=public1.114dns.com
[root@centos79-20251123 ~]# ipcalc -h   8.8.8.8
HOSTNAME=dns.google

2.3 由给定的 IP 地址计算默认的网络掩码

[root@centos79-20251123 ~]# ipcalc -m 192.168.1.10
NETMASK=255.255.255.0

2.4 显示给定掩码或 IP 地址的前缀长度

[root@centos79-20251123 ~]# ipcalc -p 192.168.1.10 255.255.252.0
PREFIX=22

2.5 计算网络地址

[root@centos79-20251123 ~]# ipcalc -n 192.168.1.10 255.255.252.0
NETWORK=192.168.0.0

2.6 验证 IP 地址合法性

# 验证 IP 地址的合法性
[root@centos79-20251123 ~]# ipcalc -c 192.168.1.1
[root@centos79-20251123 ~]# ipcalc -c 192.168.1.1000
ipcalc: bad IPv4 address: 192.168.1.1000

在脚本中使用 ipcalc 验证用户输入的 IP 地址是否有效非常重要。

#!/bin/bash

read -p "请输入一个IP地址: " ip_address

if ipcalc -c -s "$ip_address"; then
    echo "✅ IP 地址 $ip_address 有效。"
else
    echo "❌ IP 地址 $ip_address 无效!"
fi

输出示例

[root@centos79-20251123 ~]# sh  test.sh
请输入一个IP地址: 192.168.1.900
❌ IP 地址 192.168.1.900 无

2.7 计算网络地址、广播地址和前缀长度(合并输出)

这是 ipcalc 最常见的用途,只需一个命令就能获取网络的关键信息。

# 使用 CIDR 表示法一次性计算多个信息
ipcalc -n -b -p 192.168.56.100/23

输出示例

PREFIX=23
BROADCAST=192.168.57.255
NETWORK=192.168.56.0

2.8 在脚本中使用 ipcalc 进行网络划分

假设你有一个 IP 地址和子网掩码,需要在一个脚本中提取网络地址以供后续使用。

#!/bin/bash

ip_address="192.168.1.68"
netmask="255.255.255.224"

# 获取网络地址,并提取其值
network_addr=$(ipcalc -n $ip_address $netmask | cut -d= -f2)

echo "IP 地址 $ip_address 属于网络: $network_addr"

输出示例

IP 地址 192.168.1.68 属于网络: 192.168.1.64

3. 说明与注意事项

  • 安装ipcalc 通常预装在大多数 Linux 发行版中。如果系统中没有,可以通过包管理器安装(例如在基于 CentOS的系统上安装initscripts包)。

  • 输出格式ipcalc 的选项输出通常是 KEY=VALUE 的形式,便于在脚本中解析。

  • 主机名查询-h 选项查询的主机名通常依赖于本地的 /etc/hosts 文件或配置的 DNS,并非所有 IP 都能解析到主机名,查询失败时会报错1。

  • 安静模式-s 选项在脚本中处理可能无效的输入时有用,它可以抑制错误输出。


网站公告

今日签到

点亮在社区的每一天
去签到