NAME
Sys::Info::OS - Detailed os information.
SYNOPSIS
use Sys::Info;
my $info = Sys::Info->new;
my $os = $info->os(%options);
or
use Sys::Info::OS;
my $os = Sys::Info::OS->new(%options);
Example:
use Data::Dumper;
warn "Collected information can be incomplete\n" if $os->is_unknown;
my %fs = $os->fs;
print Data::Dumper->Dump([\%fs], ['*FILE_SYSTEM']);
print "B1ll G4teZ rull4z!\n" if $os->is_windows;
print "Pinguin detected!\n" if $os->is_linux;
if($os->is_windows) {
printf "This is a %s based system\n", $os->is_winnt ? 'NT' : '9.x';
}
printf "Operating System: %s\n", $os->name( long => 1 );
my $user = $os->login_name_real || $os->login_name || 'User';
print "$user, You've Got The P.O.W.E.R.!\n" if $os->is_root;
if(my $up = $os->uptime) {
my $tick = $os->tick_count;
printf "Running since %s\n" , scalar localtime $up;
printf "Uptime: %.2f hours\n" , $tick / (60*60 ); # probably windows
printf "Uptime: %.2f days\n" , $tick / (60*60*24 ); # might be windows
printf "Uptime: %.2f months\n", $tick / (60*60*24*30); # hmm... smells like tux
}
DESCRIPTION
Supplies detailed operating system information.
METHODS
new
Object constructor.
name
Returns the OS name. Supports these named parameters: edition
, long
:
# also include the edition info if present
$os->name( edition => 1 );
This will return the long OS name (with build number, etc.):
# also include the edition info if present
$os->name( long => 1, edition => 1 );
version
Returns the OS version.
build
Returns the OS build number or build date, depending on the system.
uptime
Returns the uptime as a unix timestamp.
tick_count
Returns the uptime in seconds since the machine booted.
node_name
Machine name
domain_name
Returns the network domain name.
Synonyms:
- workgroup
login_name
Returns the name of the effective user. Supports parameters in name => value
format. Accepted parameters: real
:
my $user = $os->login_name( real => 1 ) || $os->login_name;
ip
Returns the IP number.
fs
Returns an info hash about the filesystem. The contents of the hash can vary among different systems.
host_name
time_zone
product_type
meta
Returns a hash containing various informations about the OS.
cdkey
UTILITY METHODS
These are some useful utility methods.
is_windows
Returns true if the os is windows. Synonyms:
- is_win32
- is_win
is_winnt
Returns true if the OS is a NT based system (NT/2000/XP/2003).
Always returns false if you are not under windows or you are not under a NT based system.
is_win95
Returns true if the OS is a 9x based system (95/98/Me).
Always returns false if you are not under Windows or Windows9x.
Synonyms:
- is_win9x
is_linux
Returns true if the os is linux. Synonyms:
- is_lin
is_unknown
Returns true if this module does not support the OS directly.
is_root
Returns true if the current user has admin rights. Synonyms:
- is_admin
- is_admin_user
- is_adminuser
- is_root_user
- is_rootuser
- is_super_user
- is_superuser
- is_su
CAVEATS
I don't have any access to any other os, so this module (currently) only supports Windows & Linux. Windows support is better.
Win32::IsAdminUser() implemented in 5.8.4 (However, it is possible to manually upgrade the
Win32
module). If your ActivePerl is older than this,is_admin
method will always returns false. (There may be a workaround for that).Contents of the filesystem hash may change in further releases.
Filesystem [Windows]
File system information can not be extracted under restricted environments. If this is the case, we'll get an access is denied error.
SEE ALSO
Win32, POSIX, Sys::Info, http://msdn.microsoft.com/library/en-us/sysinfo/base/osversioninfoex_str.asp.
AUTHOR
Burak Gürsoy, <burak@cpan.org>
COPYRIGHT
Copyright 2006-2008 Burak Gürsoy. All rights reserved.
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 390:
Non-ASCII character seen before =encoding in 'Gürsoy,'. Assuming CP1252