如何使用以下 Bat 文件提取 IPv4
How to Extract IPv4 with following Bat File
我正在尝试找到从网络服务器中提取以下 IP 地址的正确方法,但我无法 return 仅提取 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
从DNS解析获取地址而不是"reply from"
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。
您可能需要使用 NSLookUp
而不是 Ping
:
For /F "Skip=1 Tokens=2" %%A In ('NSLookUp 1111s1 2^>Nul'
) Do If Not Defined IP Set "IP=%%A"
我正在尝试找到从网络服务器中提取以下 IP 地址的正确方法,但我无法 return 仅提取 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
从DNS解析获取地址而不是"reply from"
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。
您可能需要使用 NSLookUp
而不是 Ping
:
For /F "Skip=1 Tokens=2" %%A In ('NSLookUp 1111s1 2^>Nul'
) Do If Not Defined IP Set "IP=%%A"