我正在尝试找到从网络服务器中提取以下IP地址的正确方法,但我无法仅返回IP地址。
理论上如果我有1111s1作为服务器,我应该能够获取IP地址,但我仍然没有得到答案。有人可以帮我看一下这部分吗?我仍然是变量概念的新手。
@echo off
:SETUP_PRINTER
cls
mode con: cols=65 lines=30
echo.
echo --------------------------
echo. Printer Setup
echo --------------------------
set /p SPrnt=Name of Place:
echo.
FOR /F "tokens=2,3" %%A IN ('ping "%SPrnt%s1" -n 1 -4') DO IF "from"=="%%A" set "IP=%%~B"
echo. %IP%
echo.
echo. Printer IPs:
echo.
echo. .30 - Test .37 - Test
echo. .31 - Test .38 - Test
echo. .32 - Test .39 - Test
echo. .33 - Test .40 - Test
echo. .34 - Test .41 - Test
echo. .35 - Test .42 - Test
echo. .36 - Test .43 - Test
echo. .23 - Test .61 - Test
echo. .24 - Test
echo.
pause
goto MAINMENU
答案 0 :(得分:0)
从DNS解析中获取地址,而不是"从"
回复for /f "tokens=2 delims=[]" %%a in ('ping -n 1 -4 "%SPrnt%s1"') do @echo %%a
如果您ping
是主机名,则可以获得以下内容:
Ping wird ausgeführt für hostname [192.168.100.153] mit 32 Bytes Daten:
(语言可能会更改,但语法..... [aaa.bbb.ccc.ddd] .....
始终相同)
for /f
循环获取第二个标记(由于分隔符,第一个标记是[
之前的任何标记,第二个标记是[
和]
内的任何标记,第三个标记令牌是]
之后的任何内容,因此第二个令牌恰好是所需的IP地址。
有关详细信息,请参阅for /f。
答案 1 :(得分:0)
您可能需要使用NSLookUp
代替Ping
:
For /F "Skip=1 Tokens=2" %%A In ('NSLookUp 1111s1 2^>Nul'
) Do If Not Defined IP Set "IP=%%A"