#!/usr/bin/perl
# This assumes your /etc/utmp file looks like ours
open
(UTMP,
'/etc/utmp'
);
@mo
= (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);
while
(
read
(UTMP,
$utmp
,36)) {
(
$line
,
$name
,
$host
,
$time
) =
unpack
(
'A8A8A16l'
,
$utmp
);
if
(
$name
) {
$host
=
"($host)"
if
ord
(
$host
);
(
$sec
,
$min
,
$hour
,
$mday
,
$mon
) =
localtime
(
$time
);
printf
"%-9s%-8s%s %2d %02d:%02d %s\n"
,
$name
,
$line
,
$mo
[
$mon
],
$mday
,
$hour
,
$min
,
$host
;
}
}