![Windows XP 中 Linux 命令“hostname --fqdn”的等效项?](https://linux22.com/image/495827/Windows%20XP%20%E4%B8%AD%20Linux%20%E5%91%BD%E4%BB%A4%E2%80%9Chostname%20--fqdn%E2%80%9D%E7%9A%84%E7%AD%89%E6%95%88%E9%A1%B9%EF%BC%9F.png)
有没有办法找到 Windows XP 系统的完全合格域名?
hostname --fqdn
由于不熟悉 Windows,我会将我所寻找的内容描述为Linux 中可用的命令的等效内容。
答案1
您可以在系统属性(“计算机名称”选项卡)中找到它。
使用命令行,您可以运行IPCONFIG /ALL
并查看“主机名”和“主 DNS 后缀”字段。
答案2
Windows 中没有该hostname
命令的选项。不过,下面这个应该可以解决问题:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
或者您可以在其他地方使用 grep (在 Windows: 下find /I "string"
) 来查找主机和域,set
或者systeminfo
或ipconfig -all
名称,然后将其粘贴在一起。
编辑:修正了拼写错误。谢谢 Benoit
更新:
该变量%USERDNSDOMAIN%
仅在登录到域时可用...从 DHCP 服务器获取的 DNS 后缀不会放入环境变量中(据我所知)。
答案3
命令是:
ping -a localhost
答案4
脚本:
' Print FQDN in lower case letters
' Volker Fröhlich (2011)
option explicit
dim Message
dim output
dim WshShell, objEnv
dim mydomain
' Read value from registry
function readFromRegistry (strRegistryKey, strDefault )
Dim WSHShell, value
On Error Resume Next
Set WSHShell = CreateObject("WScript.Shell")
value = WSHShell.RegRead( strRegistryKey )
if err.number <> 0 then
readFromRegistry= strDefault
else
readFromRegistry=value
end if
set WSHShell = nothing
end function
mydomain = readfromRegistry("HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Domain", "asdf")
' Get the WshShell object
Set WshShell = CreateObject("WScript.Shell")
' Get collection by using the Environment property
Set objEnv = WshShell.Environment("Process")
if (mydomain="") then
Message = LCase(objEnv("COMPUTERNAME"))
else
Message = LCase(objEnv("COMPUTERNAME")) & "." & mydomain
end if
' Write to stdout
set output = wscript.stdout
output.writeline Message
调用上述脚本的 DOS 批处理文件:
for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a
echo %FQDN%
pause