网络计算工具ipcalc详解

目录

[1. 选项速查表](#1. 选项速查表)

[2. 用法示例](#2. 用法示例)

[2.1 计算广播地址](#2.1 计算广播地址)

[2.2 显示 IP 地址对应的主机名](#2.2 显示 IP 地址对应的主机名)

[2.3 由给定的 IP 地址计算默认的网络掩码](#2.3 由给定的 IP 地址计算默认的网络掩码)

[2.4 显示给定掩码或 IP 地址的前缀长度](#2.4 显示给定掩码或 IP 地址的前缀长度)

[2.5 计算网络地址](#2.5 计算网络地址)

[2.6 验证 IP 地址合法性](#2.6 验证 IP 地址合法性)

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

[2.8 在脚本中使用 ipcalc 进行网络划分](#2.8 在脚本中使用 ipcalc 进行网络划分)

[3. 说明与注意事项](#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 选项在脚本中处理可能无效的输入时有用,它可以抑制错误输出。

相关推荐
深度学习040713 分钟前
【网络实验】-VLAN工作原理
网络
XH-hui39 分钟前
【打靶日记】群内靶机vm1
linux·网络安全
Eric.Lee20211 小时前
ubuntu 安装 Miniconda
linux·运维·python·ubuntu·miniconda
会飞的土拨鼠呀2 小时前
通过Linux进程id找到程序路径
linux·服务器·网络
杭州泽沃电子科技有限公司2 小时前
在线监测:为医药精细化工奠定安全、合规与质量基石
运维·人工智能·物联网·安全·智能监测
GIS数据转换器2 小时前
GIS+大模型助力安全风险精细化管理
大数据·网络·人工智能·安全·无人机
行初心2 小时前
uos基础 cupsd.conf 查看打印服务的配置文件
运维
让学习成为一种生活方式2 小时前
植物中验证蛋白相互作用的Pull-down和Co-IP技术--文献精读181
网络·网络协议·tcp/ip
普普通通的南瓜2 小时前
IP证书在关键信息基础设施安全防护中的实践与挑战
网络·数据库·网络协议·tcp/ip·安全·ssl
1***y1782 小时前
Git在发布流程中的自动化标签
运维·git·自动化