Получение IP-адреса машины из пакетного скрипта с использованием «VirtualBox Host-Only» - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу поймать IP-адрес моей машины с помощью командного файла.

Я использую следующий код:

for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do set IPAddress=%%a
echo IP-Adress is %IPAddress%

У меня также установлен Virtual Box в моей системе,Итак, для VB также установлен адаптер Ethernet с именем Ethernet adapter VirtualBox Host-Only Network.

Теперь, когда я пингую свою машину, используя ComputerName, я получаю ответ от адаптера VB Host-Only Network.

ping %ComputerName% -4

Pinging CTH-0098 [192.168.56.1] with 32 bytes of data:
Reply from 192.168.56.1: bytes=32 time<1ms TTL=128
Reply from 192.168.56.1: bytes=32 time<1ms TTL=128
Reply from 192.168.56.1: bytes=32 time<1ms TTL=128
Reply from 192.168.56.1: bytes=32 time<1ms TTL=128

Но мой фактический системный IP-адрес 192.168.0.100

Как перехватить этот IP-адрес?

1 Ответ

0 голосов
/ 23 ноября 2018

если у вас более одного интерфейса, ping не поможет.Команда netsh дает вам гораздо большую гибкость:

for /f "delims=" %%a in ('netsh interface ipv4 show addresses name^="Local Area Connection" ^|find "IP"') do for %%b in (%%a) do set "ip=%%b"
echo Your IP is: %ip%

Измените Local Area Connection на ваше фактическое имя интерфейса (найдите точное имя с помощью netsh interface show interface)

...