一、命令简介
whois(Who Is)命令是Linux系统中用于查询域名、IP地址、组织等网络资源注册信息的命令行工具。它通过WHOIS协议连接到WHOIS数据库,获取域名的注册人、注册商、注册日期、到期日期、DNS服务器等详细信息。该命令在网络管理、域名查询、安全审计等场景中非常实用。 注意:不是所有Linux系统都默认安装了whois命令,需要根据系统发行版进行安装。
二、基本语法
whois [选项] <域名或IP地址>
权限要求:所有用户均可使用,无需特殊权限。
三、常用选项详解
| 选项 | 说明 | 示例 |
|---|---|---|
-h, --host <服务器> | 指定whois查询的服务器 | whois -h whois.verisign-grs.com example.com |
-p, --port <端口> | 指定查询服务器的端口(默认43) | whois -p 80 example.com |
-i, --ip | 查询IP地址的相关信息 | whois -i 8.8.8.8 |
-q, --quiet | 仅显示最基本的查询信息 | whois -q example.com |
-v, --verbose | 显示详细的查询信息 | whois -v example.com |
-r, --reverse | 执行反向查询(根据IP地址查询域名) | whois -r 8.8.8.8 |
-t, --timeout <秒数> | 设置查询的超时时间 | whois -t 10 example.com |
-H, --heading | 在输出中添加列标题 | whois -H example.com |
--help | 显示帮助信息 | whois --help |
--version | 显示版本信息 | whois --version |
四、安装方法
不同Linux发行版的安装命令:
| 发行版 | 安装命令 |
|---|---|
| Ubuntu/Debian/Linux Mint | sudo apt update && sudo apt install whois -y |
| CentOS 7/RHEL 7 | sudo yum install whois -y |
| CentOS 8+/RHEL 8+/Rocky Linux/AlmaLinux | sudo dnf install whois -y |
| Arch Linux/Manjaro | sudo pacman -S whois |
| openSUSE | sudo zypper install whois |
| Mac用户 | brew install whois(需先安装Homebrew) |
验证安装:
whois example.com
五、实际应用场景
1. 查询域名注册信息
whois example.com
输出包含:域名名称、注册商、注册日期、到期日期、域名服务器等信息。
2. 查询IP地址信息
whois 8.8.8.8
显示IP地址的所有者、注册商、地理位置等信息。
3. 指定whois服务器查询
whois -h whois.verisign-grs.com example.com
使用特定whois服务器进行查询。
4. 反向查询(根据IP查询域名)
whois -r 8.8.8.8
执行反向查询,查询IP地址所关联的域名。
5. 过滤输出结果
# 只显示到期时间
whois example.com | grep -i "expir"
# 只显示注册商信息
whois example.com | grep "Registrar:"
6. 保存查询结果到文件
whois example.com > example_whois.txt
方便后续分析或存档。
7. 查询ASN信息
whois AS15169
查询自治系统号(ASN)的相关信息。
六、输出结果解读
查询结果通常包含以下关键信息:
| 字段 | 说明 |
|---|---|
| Domain Name | 域名全称 |
| Registrar | 域名注册商 |
| Creation Date | 注册日期 |
| Expiration Date | 到期日期 |
| Registrant | 注册人信息(姓名、邮箱、电话等) |
| Name Server | 域名解析用的DNS服务器 |
| Status | 域名状态 |
注意:由于隐私保护政策(如GDPR),部分信息可能显示为”REDACTED FOR PRIVACY”,这是正常现象。
七、常见问题与解决方法
1. 命令未找到
# 如果提示 "command not found"
sudo apt update && sudo apt install whois -y
2. 查询结果为空或空白
- 可能是查询频率过高被限流
- 域名太新未同步到数据库
- 尝试使用其他whois服务器(如whois.icann.org)交叉验证
3. 无法定位软件包
# 先更新包列表
sudo apt update
# 再尝试安装
sudo apt install whois -y
八、高级用法
1. 批量查询
将多个域名或IP地址保存在文本文件中,使用-W参数进行批量查询:
# 创建查询文件
echo "example.com" > domains.txt
echo "google.com" >> domains.txt
# 批量查询
whois -W domains.txt
2. 自定义配置
编辑配置文件/etc/whois.conf,可以自定义whois工具的配置选项,如默认服务器、输出格式等。
3. 使用Python脚本实现
通过Socket直连WHOIS服务器,实现自主查询:
import socket
def whois_request(domain, server="whois.iana.org", port=43):
sock = socket.create_connection((server, port))
sock.send(f"{domain}\r\n".encode("utf-8"))
buff = b""
while True:
data = sock.recv(1024)
if not data:
break
buff += data
sock.close()
return buff.decode("utf-8")
九、注意事项
- 隐私保护:部分域名启用了隐私保护服务,注册人信息会被隐藏
- 查询限制:某些注册商可能对whois查询进行限流
- 信息准确性:WHOIS信息依赖于注册人提供的数据,可能存在不准确或过期的情况
- 法律合规:使用WHOIS信息需遵守相关法律法规,不当使用可能产生法律风险
- 域名格式:查询时只需输入域名主体(如example.com),不要带www前缀
十、总结
whois命令是Linux系统中查询域名和IP注册信息的强大工具,通过简单的命令行操作即可获取丰富的网络资源信息。掌握whois命令的使用方法,对于网络管理员、域名投资者、安全研究人员等都非常有帮助。无论是日常查询还是批量分析,whois都能提供便捷高效的解决方案。