Skip to main content

Network Process Monitor is a Python API to monitor process traffic

Project description

Network Process Monitor makes it easy for Python developers to monitor a proccess’ network usage.

Currently, it works with IPv4 and tested against Python 2.7.

Development site.

© Network Process Monitor contributors 2019 under the The GNU General Public License v3.0.

Installation

Install using pip with:

pip install netprocmon

Or, download a wheel or source archive from PyPI.

Basic

>>> import time
>>> from netprocmon import Monitor
>>> pid = 586
>>> with Monitor() as a:
...      a.add_pid(pid)
...      a.start()
...      while True:
...          time.sleep(5)
...          print [str(n) for n in a.get_count_by_pid(pid)]
...
['NetworkTraffic(interface=eth1, recv=2302, pid=586, send=6806)']
['NetworkTraffic(interface=eth1, recv=2832, pid=586, send=9104)']
['NetworkTraffic(interface=eth1, recv=3548, pid=586, send=10742)', 'NetworkTraffic(interface=eth2, recv=0, pid=586, send=121)']

Listen address/interface

Limit listening to an interface by providing the interface address

>>> import time
>>> from netprocmon import Monitor
>>> pid = 586
>>> with Monitor() as a:
...      a.add_pid(pid)
...      a.add_address("10.0.0.21")
...      a.start()
...      while True:
...          time.sleep(5)
...          print [str(n) for n in a.get_count_by_pid(pid)]
...
['NetworkTraffic(interface=eth1, recv=530, pid=586, send=2758)']
['NetworkTraffic(interface=eth1, recv=1538, pid=586, send=5044)']
['NetworkTraffic(interface=eth1, recv=2386, pid=586, send=8166)']

Available constants and methods

Constants

  • P_TCP: Define the TCP protocol number

  • P_UDP: Define the UDP protocol number

Process Identification

  • add_pid(PID): Add a process identification to have the traffic counted

  • remove_pid(PID): Remove a process identification and the traffic count

  • get_pids(): Get a list of process identifications that get the traffic counted

  • get_pid_by_port(proto, port): Get the process identification based on a supervise port

  • clear_pids(): Remove all process identifications

Listening

  • add_address(addr): Add a listening restriction; The address should fit with an interface address

  • get_addresses(): Return a list of listening restrictions

  • remove_address(addr): Remove a listening restriction

  • clear_addresses(): Remove all listening restriction

  • get_listen_addrs(): Return a list of interface addresses that are being listed to

  • get_listen_interfaces(): Return a list of interfaces with their addresses that are being listed to

  • get_listen_interface_by_addr(addr): Return the interface name based on a address; If the address is not listened to, None will be returned

Run

  • start(): Start the monitor

Traffic Info

  • get_count_by_pid(PID): Get network traffic based on a process identification

Port Info

  • get_ports_by_pid(PID): Get a list of supervise ports based on a process identification

  • get_ports_by_proto(proto): Get a list of supervise ports based on TCP or UDP protocol; See P_TCP, P_UDP

  • get_ports(): Get a list of all supervise ports

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netprocmon-0.0.1rc7.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netprocmon-0.0.1rc7-py2-none-any.whl (19.1 kB view details)

Uploaded Python 2

File details

Details for the file netprocmon-0.0.1rc7.tar.gz.

File metadata

  • Download URL: netprocmon-0.0.1rc7.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/2.7.15

File hashes

Hashes for netprocmon-0.0.1rc7.tar.gz
Algorithm Hash digest
SHA256 f32535daa899f9be13754616c8477ed19036d814fe5fd7971f06cbac83e20b12
MD5 0e50bd846e20a942460faf446335d120
BLAKE2b-256 162ce9a342f4d98df729fc84d12507c4a37580b82204713e8b90da8f8f47d021

See more details on using hashes here.

File details

Details for the file netprocmon-0.0.1rc7-py2-none-any.whl.

File metadata

  • Download URL: netprocmon-0.0.1rc7-py2-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/2.7.15

File hashes

Hashes for netprocmon-0.0.1rc7-py2-none-any.whl
Algorithm Hash digest
SHA256 1a0b5f736e964b712d3b7100ba8ea54e4fedfce29dfbdfa20b6aa5473ce5cb2c
MD5 7d6cf38bccede02b0612f671b18d0693
BLAKE2b-256 c33949af1e4ec155b84dd7ecf004b8d594c305f6c0b2ab2ceb4261f7e3dcb582

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page