Linux常用命令学习笔记:whois

一、命令简介

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 Mintsudo apt update && sudo apt install whois -y
CentOS 7/RHEL 7sudo yum install whois -y
CentOS 8+/RHEL 8+/Rocky Linux/AlmaLinuxsudo dnf install whois -y
Arch Linux/Manjarosudo pacman -S whois
openSUSEsudo 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")

九、注意事项

  1. 隐私保护:部分域名启用了隐私保护服务,注册人信息会被隐藏
  2. 查询限制:某些注册商可能对whois查询进行限流
  3. 信息准确性:WHOIS信息依赖于注册人提供的数据,可能存在不准确或过期的情况
  4. 法律合规:使用WHOIS信息需遵守相关法律法规,不当使用可能产生法律风险
  5. 域名格式:查询时只需输入域名主体(如example.com),不要带www前缀

十、总结

whois命令是Linux系统中查询域名和IP注册信息的强大工具,通过简单的命令行操作即可获取丰富的网络资源信息。掌握whois命令的使用方法,对于网络管理员、域名投资者、安全研究人员等都非常有帮助。无论是日常查询还是批量分析,whois都能提供便捷高效的解决方案。


作 者:南烛
链 接:https://www.itnotes.top/archives/659
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇