Provided by: libsys-info-base-perl_0.7807-4_all bug

NAME

       Sys::Info::OS

VERSION

       version 0.7807

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 => 1 ) || $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.

NAME

       Sys::Info::OS - Detailed os 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
   bitness
       If successful, returns the bitness ( 32 or 64 ) of the OS. Returns false otherwise.

   meta
       Returns a hash containing various informations about the OS.

   cdkey
   locale

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_bsd
       Returns true if the os is (free|open|net)bsd.

   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 access to all operating systems in the world, so this module (currently)
           only supports Windows, Linux and (Free)BSD. Windows support is better.  If you want
           support for some other OS, you'll need to write the driver yourself. Anything other
           than natively supported systems will fall-back to the generic "Unknown" driver which
           has very limited capabilities.

       •   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.

       •   Bitness has some problems [Linux, BSD], especially on the os side.

SEE ALSO

       Win32, POSIX, Sys::Info, Sys::Info::Device,
       <http://msdn.microsoft.com/library/en-us/sysinfo/base/osversioninfoex_str.asp>.

AUTHOR

       Burak Gursoy <burak@cpan.org>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2006 by Burak Gursoy.

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.