我想通过 IP 地址获取远程计算机/主机名。 我找到了很多答案,例如 nslookup、host、resloveip 等。 但我仍然无法从我的目标机器(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-05-13
您可以使用
nslookup
查询名称服务器。它是双向的!
nslookup <IP>
nslookup <hostname>
为了使用
nslookup
、host
或 gethostbyname()
,目标名称需要在 DNS 中注册或在运行程序的计算机上的主机文件中静态定义。是的,您可以使用 SSH 或其他应用程序连接到目标并直接查询它,但对于通用解决方案,您需要某种 DNS 条目。
我发现在局域网中使用的另一种简单方法是
ssh [username@ip] uname -n
如果需要登录命令行将会
sshpass -p "[password]" ssh [username@ip] uname -n
无需知道连接的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 命令:
请勿使用 host 命令。在某些操作系统上,您将在主机名后输入任何内容来设置主机名,因此输入主机 23.23.23.23 会将您的主机名设置为该名称。
我发现,安装 sshpass 后,
sshpass -p "密码" ssh 用户@IP 主机名
返回远程主机的主机名:)