我想通过 IP 地址获取远程机器/主机名。我找到了很多答案,比如 nslookup、host、resolveip 等等... 但我仍然无法从我的目标机器(cent OS, ubuntu等...)获取主机名。看来需要在 DNS 服务器上注册?
我有一台名为 test 的机器,使用的是 IP 10.1.27.97
但我使用上述方法仍然无法获取 "test"
是否有人能帮助我从 IP 地址中获取主机名?
要通过IP地址在本地网络中查找主机名,您可以使用来自Samba套件的nmblookup
:
nmblookup -A <ip>
要在互联网上查找主机名,您可以使用host
程序:
host <ip>
或者您可以通过运行以下命令安装nbtscan
:
sudo apt-get install nbtscan
并使用:
nbtscan <ip>
更新于2018年5月13日
你可以使用nslookup
查询名称服务器,它可以双向工作!
nslookup <IP>
nslookup <hostname>
nbtscan -v -s : 192.168.0.1/24
- Aquarius Powernslookup <IP>
- alfiogangnslookup 10.10.2.220
时,我得到了 ** server can't find 220.2.10.10.in-addr.arpa: NXDOMAIN
的提示。这是一些有用的信息! - Yanick Rochonnslookup
、host
或gethostbyname()
,目标名称需要在运行程序的计算机上通过DNS注册或静态定义在主机文件中。是的,您可以使用SSH或其他应用程序直接连接到目标并查询它,但对于通用解决方案,您需要某种类型的DNS条目来实现它。我发现在局域网中使用的另一种简单方法是
ssh [username@ip] uname -n
sshpass -p "[password]" ssh [username@ip] uname -n
不要使用host命令。在某些操作系统上,您会使用输入的任何内容来设置主机名,因此输入host 23.23.23.23将会将您的主机名设置为该IP地址。
不需要知道连接的IP:
sh -c "IP=\$(curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'); nslookup \$IP | grep 'name =' | awk '{print \$NF}'"
这段代码是一个 shell 命令,它执行以下操作:
resolv.conf
中有一个search
命令,我知道我的名称在其中。 - Sandburg