如何使用IP地址获取网络上另一台PC的主机名? (批处理文件)

时间:2019-05-08 11:26:35

标签: batch-file

希望获取我网络上另一台PC的主机名,并将其分配给批处理文件中的所有变量。

我希望使用类似于以下解决方案的东西:

FOR /F "usebackq" %%i IN (`hostname`) DO SET MYVAR=%%i
  • 此解决方案会获取PC名称,但还会获取.home末尾的“ PCNAME.home”

for /f "tokens=2 delims=: " %%i in ('nslookup 192.168.178.1^|find "Name:"') do set name=%%i

1 个答案:

答案 0 :(得分:0)

SET "MYVAR="
for /f "tokens=2" %%i in ('ping -n 1 -a 192.168.178.1') do if not defined MYVAR SET "MYVAR=%%i"

上述解决方案应适用于以下IP地址块(private IP address range)中的IP地址:

  • 10.0.0.010.255.255.255
  • 172.16.0.0172.31.255.255
  • 192.168.0.0192.168.255.255

修改这返回PCNAME.home ..是否有办法使结果仅是PCNAME,而末尾没有“ .home”?
以下代码段甚至可以处理ping /a由于某些原因无法将IP地址解析为主机名的情况。

SET "MYIP=192.168.178.1"
SET "MYVAR="
for /f "tokens=2" %%i in ('ping -n 1 -a %MYIP%') do if not defined MYVAR SET "MYVAR=%%i"
if NOT "%MYIP%"=="%MYVAR%" for /f "delims=." %%i in ("%MYVAR%") do SET "MYVAR=%%i"