如何通过主机名(或别名)查找 IP 地址?

如何通过主机名(或别名)查找 IP 地址?

您好,有人要求我在 Redhat 服务器中通过主机名(或别名)检查 IP 地址。在某些 sh ​​脚本中,有一个 lftp 打开与外部 ftp 服务器的连接的代码。第一个 lftp 连接使用“host1”。ping host1 显示 host1.domain.com。再 ping host2 显示未知主机。我如何在 Redhat 中检查绑定到 host2 的 ip 地址?我尝试检查主机文件,没有它的条目。还有其他地方可以将主机/别名映射到真实 IP 吗?

etc/nsswitch.conf:

#
#/etc/nsswitch.conf
#
# 示例名称服务交换机配置文件。该文件应
# 按最常用的服务排序在最前面。
#
# 条目 '[NOTFOUND=return]' 表示搜索
如果前一个条目中的搜索变为
# 没有结果。请注意,如果搜索由于其他原因失败
#(例如没有 NIS 服务器响应)则继续搜索
# 下一个条目。
#
# 合法条目包括:
#
# nisplus 或 nis+ 使用 NIS+(NIS 版本 3)
# nis 或 yp 使用 NIS(NIS 版本 2),也称为 YP
# dns 使用 DNS(域名服务)
# files 使用本地文件
# db 使用本地数据库(.db)文件
# compat 在兼容模式下使用 NIS
# hesiod 使用 Hesiod 进行用户查找
# [NOTFOUND=return] 如果未找到则停止搜索
#

# 要使用 db,请将要作为条目的“files”前面加上“db”。
# 首先在数据库中查找
#
# 例子:
#passwd: db 文件 nisplus nis
#shadow:db 文件 nisplus nis
#group: db 文件 nisplus nis

密码:文件
影子:文件
组:文件

#hosts: db 文件 nisplus nis dns
主机:文件 DNS

# 例如 - 只遵守 nisplus 告诉我们的内容……
#服务:nisplus [NOTFOUND=return] 文件
#networks: nisplus [NOTFOUND=return] 文件
#protocols: nisplus [NOTFOUND=return] 文件
#rpc: nisplus [NOTFOUND=return] 文件
#ethers:nisplus [NOTFOUND=return] 文件
#netmasks: nisplus [NOTFOUND=return] 文件

bootparams:nisplus [NOTFOUND=return] 文件

以太:文件
网络掩码:文件
网络:文件
协议:文件
rpc:文件
服务:文件

谢谢。

答案1

用于限定非限定主机名的域可以在您的/etc/resolv.conf文件中设置。如果文件host2中提到的域中不存在该域resolv.conf,则无法解析该名称,因此您会收到错误消息。

答案2

通常,任何主机都会尝试使用 hosts 文件来解析名称。如果失败,它将尝试查询配置的 DNS 服务器来解析名称。

有一个名为的配置文件/etc/nsswitch.conf,它决定了名称解析过程的顺序。

如果你发现如下一行:

hosts:          files dns

这意味着先查询 hosts 文件,然后查询 DNS 服务器。DNS 服务器可以在 中配置/etc/resolv.conf

您可以使用以下命令查询 DNS 服务器以进行名称解析:

$ dig host1.example.com

nslookup可以做类似的工作。

相关内容