> Gurus;
> 
> Is there a way, through the procfs of Solaris to
> determine whether the a 
> process has opened listening network ports?
> 
> Either using Perl or otherwise?
> 
> I know of a very iterative approach but if we apply
> the approach to all 
> the ports and the processes in a running system, it
> well...does not
> really perform.
> 
> I was wondering whether there was a specific API call
> in the Solaris
> procfs which readily gives the opened network port
> (if the process has one)?
> 
> The above methodology must work in all three Solaris
> version. 8, 9 and 10.
> 
> This implies no dtrace and no special pfiles output
> parsing (the pfiles
> output in Solaris 10 easily provides the network
> port).
> 
> Warmest Regards
> Steven Sim
> 
> 
> 
> 
> 
> Fujitsu Asia Pte. Ltd.
> _____________________________________________________
> 
> This e-mail is confidential and may also be
> privileged. If you are not the intended recipient,
> please notify us immediately. You should not copy or
> use it for any purpose, nor disclose its contents to
> any other person. 
> 
> Opinions, conclusions and other information in this
> message that do not relate to the official business
> of my firm shall be understood as neither given nor
> endorsed by it.
> 
> 
> _______________________________________________
> opensolaris-discuss mailing list
> opensolaris-discuss@opensolaris.org

You can use "netstat -a" to determine what ports are open.
localhost.35878            *.*                0      0 49152      0 LISTEN
localhost.printer          *.*                0      0 49152      0 LISTEN
localhost.57855            *.*                0      0 49152      0 LISTEN
localhost.35845            *.*                0      0 49152      0 LISTEN
localhost.52256            *.*                0      0 49152      0 LISTEN
localhost.34781            *.*                0      0 49152      0 LISTEN
localhost.59300            *.*                0      0 49152      0 LISTEN
localhost.57594            *.*                0      0 49152      0 LISTEN
localhost.41428            *.*                0      0 49152      0 LISTEN
localhost.52035            *.*                0      0 49152      0 LISTEN
localhost.62129            *.*                0      0 49152      0 LISTEN
localhost.65284            *.*                0      0 49152      0 LISTEN
localhost.63682            *.*                0      0 49152      0 LISTEN
localhost.55571            *.*                0      0 49152      0 LISTEN
localhost.53421            *.*                0      0 49152      0 LISTEN
localhost.63762            *.*                0      0 49152      0 LISTEN
localhost.39700            *.*                0      0 49152      0 LISTEN
localhost.33613            *.*                0      0 49152      0 LISTEN
localhost.60710            *.*                0      0 49152      0 LISTEN
localhost.64089            *.*                0      0 49152      0 LISTEN
localhost.37041            *.*                0      0 49152      0 LISTEN
localhost.51288            *.*                0      0 49152      0 LISTEN
[b]localhost.44341[/b]            *.*                0      0 49152      0 
[b]LISTEN[/b]

The example in bold says that something is listening to port 44341 on localhost.

You can use /usr/proc/bin/pfiles against your process to see which ports it has 
open.

Here is a simple script:

for x in `ps -ef|awk '{print $2}'`; do echo $x; pfexec /usr/proc/bin/pfiles 
$x|grep sockname; done

Output looks like this:

590
644
4309
        sockname: AF_UNIX 
4106
596
634
        sockname: AF_UNIX 
1502
728
        sockname: AF_INET 0.0.0.0  port: 631
3528
3521
        sockname: AF_UNIX 
        sockname: AF_UNIX 
        sockname: AF_UNIX 
        sockname: AF_INET 127.0.0.1  port: 34781
 
 
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to