1

Я установил VirtualBox на моем компьютере. У меня есть виртуальная сетевая карта «Virtual Host-Only Network» и две машины, подключенные к ней через сетевой режим Host-Only.

Я хочу проверить их адреса с хоста, а затем я хочу пинговать каждую машину с хоста.

РЕДАКТИРОВАТЬ:

(примечание: я работаю в Windows, поэтому вместо grep я использовал find)

Я использовал эти команды (первая строка - команда, следующая - результат):

VBoxManage list vms
"MyMachine1" {uuid1}
"MyMachine1" {uuid2}

Далее было

VBoxManage showvminfo "MyMachine1" | find "NIC"
NIC 1: MAC: _MAC_ADDRESS, ..., 'VirtualBox Host-Only Ethernet Adapter #3", ...
NIC 2: disabled
NIC 3: disabled
NIC 4: disabled

Тогда arp -a | find "_MAC_ADDRESS" (В этой команде мне пришлось разделить цифры MAC с помощью "-", так как arp отображает их как AA-BB-CC-DD-EE-FF)

Я думаю, что я близко, но эта последняя команда не дает никакого результата, как не было _MAC_ADDRESS; но другие адреса отображаются правильно.

РЕДАКТИРОВАТЬ 2:

Наконец-то я получил это :) спасибо за помощь, злорадно, ты классный.

Что я сделал:

VBoxManage guestproperty enumerate "MyMachine1" | find "IP"
Name: /VirtualBox/GuestInfo/Net/0/V4/IP, value: 192.168.56.100, timestamp: 1452501107090249101, flags:

Достаточно справедливо для меня :)

Но злорадный сделал это более элегантно, с помощью регулярных выражений (см. Его ответ). Это может быть полезно, когда вам действительно нужно сократить результат, чтобы получить IP-адрес и использовать его в некоторых хитростях, хакерских программах и скриптах :)

ОГРОМНОЕ СПАСИБО БРО :)

1 ответ1

0

Включить ВМ

Прежде всего, вы должны включить гостевые виртуальные машины, убедитесь, что они включены с

VBoxManage list runningvms

Если в списке нет компьютеров, у вас нет включенных виртуальных машин, перечислите их и включите с помощью

VBoxManage list vms
"Windows7" {4968bf9e-cef5-4146-85e7-431c4a0d6d6c}

VBoxManage startvm name_of_VM

Где name_of_VM - это имя вашей виртуальной машины.

Без гостевых дополнений VirtualBox. (не требуется подключение к интернету)

У вас есть команда VBoxManage. Чтобы показать всю информацию о виртуальной машине, вы должны запустить:

VBoxManage showvminfo "name_of_VM"

Получив информацию от виртуальных машин, запишите MAC-адрес, например:

NIC 1:           MAC: 080027CD3159, Attachment: Bridged Interface 'enp1s0f0', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none

Затем вы можете использовать команду arp следующим образом, изменив _MAC_ADDRESS на MAC-адрес вашего виртуального компьютера в нотации ':'

arp -a | grep _MAC_ADDRESS

Вы должны получить IP-адрес своей виртуальной машины.

С установленными гостевыми дополнениями VirtualBox

Другой способ, более простой, чем предыдущий, должен быть через гостевые дополнения vbox. Если у вас установлены гостевые дополнения, вы можете просто использовать:

VBoxManage guestproperty enumerate "name_of_VM" | grep /VirtualBox/GuestInfo/Net/0/V4/IP | grep -o -w -P -e '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'

Или просто

VBoxManage guestproperty enumerate "name_of_VM"

И поиск по IP адресу

Установка гостевых дополнений (требуется подключение к Интернету)

Вы можете установить гостевые дополнения через VBoxManage

wget http://download.virtualbox.org/virtualbox/5.0.12/Oracle_VM_VirtualBox_Extension_Pack-5.0.12.vbox-extpack
sudo VBoxManage extpack install ./Oracle_VM_VirtualBox_Extension_Pack-5.0.12.vbox-extpack

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .