Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

批次檔透過電腦名稱解析 IP 位址 (支援 IPv4)

編輯:系統常見問題解答

在純批次環境下,利用 ping 指令搭配字串剖析,從電腦名稱 (NetBIOS/DNS) 取得 IPv4 位址,無需 PowerShell 或外部工具。

核心腳本

@echo off
set "pcName=YourTargetComputerName"   rem 修改為目標電腦名稱

rem 先 ping 一次觸發 DNS/NetBIOS 解析
ping %pcName% -4 -n 1 >nul

rem 解析輸出取得 IP
for /f "tokens=2 delims=[]" %%i in ('ping %pcName% -4 -n 1 ^| findstr %pcName%') do set "ip=%%i"

rem 處理可能的尾隨字元 (如 "]")
set "iptmp=%ip:~0,15%"
set "lastchar=%iptmp:~-1%"
if "%lastchar%"=="]" set "iptmp=%ip:~0,14%"

echo 解析結果 IP: %iptmp%
pause

關鍵技巧解析

  • ping -4 強制使用 IPv4,避免 IPv6 干擾解析邏輯。
  • findstr %pcName% 過濾包含電腦名稱的那一行 (通常為 Pinging XXX [IP]... 格式)。
  • tokens=2 delims=[] 以 [ 和 ] 為分隔符,取第 2 欄位即為 IP。
  • 字串截取 %var:~start,length% 處理尾隨 ]。

應用延伸

  • 搭配 set /p pcName=請輸入電腦名稱: 互動式輸入。
  • 將解析出的 %iptmp% 傳遞給後續指令 (如 psexec \\%iptmp% ...、mstsc /v:%iptmp%)。
  • 寫入函式庫 :GetIP pcName ipVar 供多處呼叫。
Copyright © Windows教程網 All Rights Reserved