#!/usr/bin/perl # Written for linux; may have to be modified for your brand of Unix. $MAC_PROCESS="afpd"; $PS_STR="-ef"; $ASIP_PORT="afpovertcp"; # Change to 0 if you don't have lsof $LSOF=1; if ($LSOF == 1 ) { open(LSOF,"lsof -i | grep $ASIP_PORT |"); while() { if ($_ !~ /$ASIP_PORT/) { next; } $_=~/\w+\s+(\d+).*->([\w-]+).*/; $pid=$1; $host=$2; $mac{$pid}=$host; } close(LSOF); print "PID UID Usercode Name Logintime Mac\n"; } else { print "PID UID Usercode Name Logintime\n"; } open(PS," ps $PS_STR |") || die "cannot do ps"; while() { if ($_ !~ /$MAC_PROCESS/ ) { next; } $_=~ /\s*(\w+)\s+(\d+)\s+(\d+)\s+\d+\s+([\d\w:]+)/; $user=$1; $pid=$2; $ppid=$3; $time=$4; if ($ppid != 1) { ($t,$t,$uid,$t,$t,$t,$name,$t,$t)=getpwnam($user); printf "%-8d %-8d %-8s %-20s %-9s %s\n",$pid,$uid,$user,$name,$time,$mac{$pid}; } } close(PS);