2

我正在编写一个 ping 网站的批处理文件,例如:

Pinging youtube.com [173.194.70.91] with 32 bytes of data:
Reply from 173.194.70.91: bytes=32 time=187ms TTL=44

Ping statistics for 173.194.70.91:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 187ms, Maximum = 187ms, Average = 187ms

我的程序必须只复制 IP 地址并将其保存到文本文件中。

所以它会ping到一个文本文件

ping youtube.com >> file.txt

现在我使用findstr命令来查找 IP 地址。如果我使用这个很好:

ping youtube.com -n 1 >nul >>C:\Users\Adrian\Desktop\IP.txt
findstr /i "Reply from 173.194.70.93: bytes=32 time=188ms TTL=43 C:\IP.txt

IF %ERRORLEVEL% EQU 0 (
  echo You are winning
) else (
  echo You are losing
)
pause

现在它说我赢了,这是一件好事,但我的程序必须在不知道 IP 地址的情况下找到它。所以findstr命令必须知道在此处获取 IP 地址...

"Reply from 173.194.70.91: bytes=32 time=187ms TTL=44"

所以它必须findstr来自该字符串的IP。但我一直在谷歌搜索,一无所获。

4

2 回答 2

0

试试这个:

@echo off &setlocal 
for /f "tokens=2delims=[]" %%i in ('ping -n 1 youtube.com^|find "["') do set "ip=%%i"
echo.%ip%>>file.txt
endlocal
于 2013-03-18T19:20:08.237 回答
0

如果 PowerShell 是可以接受的,那么您可以尝试:

[System.Net.Dns]::GetHostAddresses("youtube.com") | foreach {echo $_.IPAddressToString }
于 2013-03-18T19:57:53.470 回答