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->long_name;

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.

long_name

Returns the long OS name (with build number, etc.).

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.

login_name_real

Returns the real name of the effective user.

ip

Returns the IP number.

fs

Returns an info hash about the filesystem. The contents of the hash can vary between different systems.

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.

  • Win32::IsAdminUser() implemented in 5.8.4. 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 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 292:

Non-ASCII character seen before =encoding in 'Gürsoy,'. Assuming CP1252