NAME Parse::DMIDecode - Interface to SMBIOS using dmidecode SYNOPSIS use strict; use Parse::DMIDecode (); my $decoder = new Parse::DMIDecode; $decoder->probe; # Actively probe using dmidecode # Manually supply your own dmidecode output to be parsed # $decoder->parse(qx(sudo /usr/sbin/dmidecode)); printf("System: %s, %s", $decoder->keyword("system-manufacturer"), $decoder->keyword("system-product-name"), ); DESCRIPTION This module provides an OO interface to SMBIOS information through the *dmidecode* command which is known to work under a number of Linux, BSD and BeOS variants. METHODS new my $decoder = Parse::DMIDecode->new( dmidecode => "/usr/sbin/dmidecode", nowarnings => 1, ); This is the constructor method to create a Parse::DMIDeocde object. It accepts two optional arguments; "dmidecode" and "nowarnings". The "dmidecode" argument specifies the full path and filename of the *dmodecode* command that should used by the "probe" method. The "nowarnings" argument instructs Parse::DMIDecode not to emit any parser warnings. probe $decoder->probe; This method executes an active probe to gather information using the *dmidecode* command. It does not accept any arguments. parse my $raw = qx(sudo /usr/sbin/dmidecode); $decoder->prase($raw); This method is a passive alternative to the "probe" method. It accepts a single string argument which should contain output from the *dmidecode* command, which it will parse. keyword my $serial_number = $decoder->keyword("system-serial-number"); keywords my @keywords = $decoder->keywords; my @bios_keywords = $decoder->keywords("bios"); for my $keyword (@bios_keywords) { printf("%s => %s\n", $keyword, $decoder->keyword($keyword) ); } handle_addresses my @addresses = $decoder->handle_addresses; get_handles use Parse::DMIDecode::Constants qw(@TYPES); # Available groups to query: bios, system, baseboard, # chassis, processor, memory, cache, connector, slot for my $handle ($decoder->get_handles( group => "memory" )) { printf(">> Found handle at %s (%s):\n%s\n", $handle->address, $TYPES[$handle->dmitype], $handle->raw ); } See Parse::DMIDecode::Handle for accessor method documentation for handle objects. smbios_version my $smbios_version = $decoder->smbios_version; Returns the SMBIOS version number. dmidecode_version my $dmidecode_version = $decoder->dmidecode_version; Returns the version number of the copy of *dmidecode* that was used to create the source data that was parsed. This value may not be available when using older versions of *dmidecode*. table_location my $memory_address = $decoder->table_location; structures my $total_structures = $decoder->structures; SEE ALSO Parse::DMIDecode::Handle, Parse::DMIDecode::Constants, Parse::DMIDecode::Examples, examples/*.pl, , , , , , biosdecode(8), dmidecode(8), vpddecode(8) VERSION $Id: DMIDecode.pm 1004 2007-03-11 12:43:25Z nicolaw $ AUTHOR Nicola Worthington If you like this software, why not show your appreciation by sending the author something nice from her Amazon wishlist? ( http://www.amazon.co.uk/gp/registry/1VZXC59ESWYK0?sort=priority ) COPYRIGHT Copyright 2006,2007 Nicola Worthington. This software is licensed under The Apache Software License, Version 2.0.