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.