Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Map port to process (http://www.velocityreviews.com/forums/t353077-map-port-to-process.html)

py 01-05-2006 02:39 PM

Map port to process
 
Is there a way in python to figure out which process is running on
which port? I know in Windows XP you can run "netstat -o" and see the
process ID for each open port....but I am looking for something not
tied to windows particularly, hopefully something in python.

if not, any known way, such as netstat shown above, for other versions
of windows (such as 98, 2000) and even linux?

thanks


Diez B. Roggisch 01-05-2006 04:05 PM

Re: Map port to process
 
py wrote:

> Is there a way in python to figure out which process is running on
> which port? I know in Windows XP you can run "netstat -o" and see the
> process ID for each open port....but I am looking for something not
> tied to windows particularly, hopefully something in python.
>
> if not, any known way, such as netstat shown above, for other versions
> of windows (such as 98, 2000) and even linux?


Linux also knows netstat.

And at least with on-board mechanisms (meaning the standard lib), I fear you
can only try and use netstat as subprocess.

I'm not aware of an extension module that does what you want, but I didn't
google for it.

Diez

Mike Meyer 01-05-2006 05:53 PM

Re: Map port to process
 
"py" <codecraig@gmail.com> writes:
> Is there a way in python to figure out which process is running on
> which port? I know in Windows XP you can run "netstat -o" and see the
> process ID for each open port....but I am looking for something not
> tied to windows particularly, hopefully something in python.


Well, once you get to "no tied to an OS", you're out of luck. You can
run network stacks on systems that don't have processes, so there's no
general mechanism for getting process information from a
socket. Restricting things to posixish systems doesn't seem to help
much, as there doesn't seem to be a posix interface to get it either.

> if not, any known way, such as netstat shown above, for other versions
> of windows (such as 98, 2000) and even linux?


Many windows networking tools started life as Unix networking
tools. Netstat is one of them. The -o flag may be a Windows addition,
though. FreeBSD (for instance) doesn't have it, but provides the
sockstat command to get pid/process name/etc. info on
sockets. Sockstat uses sysctls to pull specific kernel structures,
which means it's OS-specific. Python doesn't seem to have a way to do
sysctl calls, either.

<mike
--
Mike Meyer <mwm@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.


All times are GMT. The time now is 05:33 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.