2

Есть ли способ определить, является ли хост, на котором выполняется скрипт, гостевой виртуальной виртуальной машиной VirtualBox? В идеале я ищу кроссплатформенный способ. Я бы подумал, что это почти невозможно, если, возможно, что-то в Guest Additions не обеспечивает этого.

2 ответа2

2

Поискал и под Linux, dmidecode | less производит:

# dmidecode 2.10
SMBIOS 2.5 present.
5 structures occupying 256 bytes.
Table at 0x000E1000.

Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
        Vendor: innotek GmbH
        Version: VirtualBox

И эквивалент Windows (спасибо Andrew Koester за указатель)

C:\> wmic bios get smbiosbiosversion
SMBIOSBIOSVersion
VirtualBox

Существует аналог Solaris, но я не могу его протестировать, потому что у меня есть доступ только к машинам Sparc. Но, для полноты, вот оно: /usr/sbin/smbios

1

В Windows вы можете запросить информацию о BIOS с помощью WMI. http://msdn.microsoft.com/en-us/library/aa394077%28VS.85%29.aspx

Я не верю, что вы найдете кроссплатформенное решение, по крайней мере, не пройдя весь путь вниз и не прочитав его напрямую из памяти низкого уровня. (В этом случае вас может заинтересовать исходный код dmidecode)

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