Cách dùng: 
./port2process.sh -p 2233
Script:
# vi port2process.sh
| 
#!/usr/bin/ksh 
# 
# PCP
  (PID con Port) 
# v1.08
  30/12/2008 sam@unix.ms 
# 
# If you
  have a Solaris 8, 9 or 10 box and you can't 
#
  install lsof, try this. It maps PIDS to ports and vice versa. 
# It
  also shows you which peers are connected on which port. 
#
  Wildcards are accepted for -p and -P options. 
# 
# Many
  thanks Daniel Trinkle trinkle@cs.purdue.edu 
# for
  the improvements! 
i=0 
while
  getopts :p:P:a opt 
do 
case
  "${opt}" in 
p )
  port="${OPTARG}";i=3;; 
P )
  pid="${OPTARG}";i=3;; 
a )
  all=all;i=2;; 
esac 
done 
if [
  $OPTIND != $i ] 
then 
echo
  >&2 "usage: $0 [-p PORT] [-P PID] [-a] (Wildcards OK) " 
exit 1 
fi 
shift
  `expr $OPTIND - 1` 
if [
  "$port" ] 
then 
# Enter
  the port number, get the PID 
# 
port=${OPTARG} 
echo
  "PID\tProcess Name and Port" 
echo
  "_________________________________________________________" 
for proc
  in `ptree -a | awk '/ptree/ {next} {print $1};'` 
do 
result=`pfiles
  $proc 2> /dev/null| egrep "port: $port$"` 
if [ !
  -z "$result" ] 
then 
program=`ps
  -fo comm= -p $proc` 
echo
  "$proc\t$program\t$port\n$result" 
echo
  "_________________________________________________________" 
fi 
done 
elif [
  "$pid" ] 
then 
# Enter
  the PID, get the port 
# 
pid=$OPTARG 
# Print
  out the information 
echo
  "PID\tProcess Name and Port" 
echo
  "_________________________________________________________" 
for proc
  in `ptree -a | awk '/ptree/ {next} $1 ~ /^'"$pid"'$/ {print $1};'` 
do 
result=`pfiles
  $proc 2> /dev/null| egrep port:` 
if [ !
  -z "$result" ] 
then 
program=`ps
  -fo comm= -p $proc` 
echo
  "$proc\t$program\n$result" 
echo
  "_________________________________________________________" 
fi 
done 
elif [
  $all ] 
then 
# Show
  all PIDs, Ports and Peers 
# 
echo
  "PID\tProcess Name and Port" 
echo
  "_________________________________________________________" 
for proc
  in `ptree -a | sort -n | awk '/ptree/ {next} {print $1};'` 
do 
out=`pfiles
  $proc 2>/dev/null| egrep "port:"` 
if [ !
  -z "$out" ] 
then 
name=`ps
  -fo comm= -p $proc` 
echo
  "$proc\t$name\n$out" 
echo
  "_________________________________________________________" 
fi 
done 
fi 
exit 0 | 
