{ "info": { "author": "Jiangge Zhang", "author_email": "tonyseek@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: Log Analysis", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Logging", "Topic :: Text Processing", "Topic :: Utilities" ], "description": "OpenVPN Status\n==============\n\n**openvpn-status** is a Python library. It parses OpenVPN status log and turns\nit into Python data structure for you.\n\nIt is compatible with CPython `2.7`, `3.4`, `3.5`, `3.6`, `3.7` and PyPy.\n\n\nInstallation\n------------\n\n.. code-block:: bash\n\n pip install openvpn-status\n\nDon't forget to put it in ``setup.py`` / ``requirements.txt``.\n\n\nGetting Started\n---------------\n\nYou could configure your OpenVPN server to log for client status. In usual it\ncould be achieved by adding ``status /path/to/openvpn-status.log`` line to\n``/etc/openvpn/openvpn.conf``. For example::\n\n proto udp\n port 1194\n dev tun0\n status /var/run/openvpn-status.log\n\nOnce OpenVPN server running, the log file will be created and written. It looks\nlike::\n\n OpenVPN CLIENT LIST\n Updated,Thu Jun 18 08:12:15 2015\n Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since\n foo@example.com,10.10.10.10:49502,334948,1973012,Thu Jun 18 04:23:03 2015\n bar@example.com,10.10.10.10:64169,1817262,28981224,Thu Jun 18 04:08:39 2015\n ROUTING TABLE\n Virtual Address,Common Name,Real Address,Last Ref\n 192.168.255.134,foo@example.com,10.10.10.10:49502,Thu Jun 18 08:12:09 2015\n 192.168.255.126,bar@example.com,10.10.10.10:64169,Thu Jun 18 08:11:55 2015\n GLOBAL STATS\n Max bcast/mcast queue length,0\n END\n\nNow we could parse log file with this library:\n\n.. code-block:: python\n\n from openvpn_status import parse_status\n\n with open('/var/run/openvpn-status.log') as logfile:\n status = parse_status(logfile.read())\n\n print(status.updated_at) # datetime.datetime(2015, 6, 18, 8, 12, 15)\n\n foo_client = status.client_list['169.254.0.1']\n print(foo_client.common_name) # foo@example.com\n print(foo_client.bytes_received) # 334.9 kB\n print(foo_client.bytes_sent) # 2.0 MB\n print(int(foo_client.bytes_sent)) # 2097152\n\n\nMore details are in the `API reference`_.\n\n\nContributing\n------------\n\nIf you want to report bugs or request features, please feel free to open\nissues on GitHub_.\n\nOf course, pull requests are always welcome.\n\n\n.. _`API reference`: https://openvpn-status.readthedocs.io/en/latest/api.html\n.. _GitHub: https://github.com/tonyseek/openvpn-status/issues\n\n.. |Build Status| image:: https://img.shields.io/travis/tonyseek/openvpn-status.svg\n :target: https://travis-ci.org/tonyseek/openvpn-status\n :alt: Build Status\n.. |Coverage Status| image:: https://img.shields.io/coveralls/tonyseek/openvpn-status.svg\n :target: https://coveralls.io/r/tonyseek/openvpn-status\n :alt: Coverage Status\n.. |Wheel Status| image:: https://img.shields.io/pypi/wheel/openvpn-status.svg\n :target: https://warehouse.python.org/project/openvpn-status\n :alt: Wheel Status\n.. |PyPI Version| image:: https://img.shields.io/pypi/v/openvpn-status.svg\n :target: https://pypi.python.org/pypi/openvpn-status\n :alt: PyPI Version\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tonyseek/openvpn-status", "keywords": "openvpn,status,log", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "openvpn-status", "package_url": "https://pypi.org/project/openvpn-status/", "platform": "Any", "project_url": "https://pypi.org/project/openvpn-status/", "project_urls": { "Homepage": "https://github.com/tonyseek/openvpn-status" }, "release_url": "https://pypi.org/project/openvpn-status/0.2.1/", "requires_dist": [ "six (>=1.9.0)", "humanize", "netaddr", "ipaddress; python_version == \"2.7\"" ], "requires_python": "", "summary": "Parse OpenVPN status logs in Python", "version": "0.2.1" }, "last_serial": 5735910, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9b1234b3fdb7beffe97e6d61f981ff39", "sha256": "b8bdee1253fafd64ade87e9f550f4e8eb97443d2f1cac3d5f924f572be4808bb" }, "downloads": -1, "filename": "openvpn_status-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "9b1234b3fdb7beffe97e6d61f981ff39", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9119, "upload_time": "2015-06-19T19:00:57", "url": "https://files.pythonhosted.org/packages/03/dc/bd7bc8eb4bf1cb2eec39cb983fc5569f3366b0c05561c4c9c7ae051269ab/openvpn_status-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e074c0ff31ee190a7c4a1430e83c3a7", "sha256": "6f1d7028468a5461967af8b09b94c43379b5072845ff512bc05da44295f4b2ad" }, "downloads": -1, "filename": "openvpn-status-0.1.0.tar.gz", "has_sig": true, "md5_digest": "1e074c0ff31ee190a7c4a1430e83c3a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5589, "upload_time": "2015-06-19T19:00:53", "url": "https://files.pythonhosted.org/packages/ed/6f/05dbb72fe0ca0a63da89825f35cbcacf6d8bc14ef27bcc2ca94a865694f2/openvpn-status-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "1dab544f88480b05d76a4853112d4212", "sha256": "c4669abb879e8b46f97a871a54346f1bb6474d109fd4da1bda58c40094036c75" }, "downloads": -1, "filename": "openvpn_status-0.1.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1dab544f88480b05d76a4853112d4212", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9138, "upload_time": "2016-06-29T04:09:42", "url": "https://files.pythonhosted.org/packages/02/e3/6d38065af69a5056d2f06071557958e57453e78de85bdf71b24df47cff56/openvpn_status-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b00ce9448fe1cc049b9af2fd8c084cbf", "sha256": "83b65778531cd66e22d38af757dbcaeed8d234f80f7d514fba1ff0a122ec6051" }, "downloads": -1, "filename": "openvpn-status-0.1.1.tar.gz", "has_sig": true, "md5_digest": "b00ce9448fe1cc049b9af2fd8c084cbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5570, "upload_time": "2016-06-29T04:09:47", "url": "https://files.pythonhosted.org/packages/9d/a0/622d440442392781fe8c9e7035958b603604e21ef1fc41107568d16ace92/openvpn-status-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "22ccdac50862ef451f946489f012cd26", "sha256": "96060694779aa04188b9be8e3ac33597f9e803f9b70a9453d71006ddbde9ccc6" }, "downloads": -1, "filename": "openvpn_status-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "22ccdac50862ef451f946489f012cd26", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9400, "upload_time": "2017-10-20T10:05:50", "url": "https://files.pythonhosted.org/packages/d6/ea/af9ed6686461f387c535588c3375cdc397eec1a615534b0b407ca0ee7bfe/openvpn_status-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e498d9aae8ef0b466675553f4ce7efb", "sha256": "41fbf73730b85be3e495c407e22df2c312193be1dad1b3e49070e63b865f7289" }, "downloads": -1, "filename": "openvpn-status-0.2.0.tar.gz", "has_sig": true, "md5_digest": "5e498d9aae8ef0b466675553f4ce7efb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5849, "upload_time": "2017-10-20T10:05:51", "url": "https://files.pythonhosted.org/packages/a9/a5/8731b701584fd6dfd704f577359f2dcd0be369a613723133bd7d0e47235c/openvpn-status-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "230bb1fcee7bb59e87b4c5d329a963eb", "sha256": "49d113759cfefd72e404021c95aed72501edff54a034674012b0a4c84aabea29" }, "downloads": -1, "filename": "openvpn_status-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "230bb1fcee7bb59e87b4c5d329a963eb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8328, "upload_time": "2019-08-27T09:54:15", "url": "https://files.pythonhosted.org/packages/74/0d/c42e22bd12f8f37384213bb986b546a560e96a76cba35528e759c0fe8882/openvpn_status-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e92efa306e2510b4eed4626243e7a6d", "sha256": "4ac6a6ec6069c7d6fb3e9d73ab109f9390a0d0ecb2dc940553aa6d751fd7fb85" }, "downloads": -1, "filename": "openvpn-status-0.2.1.tar.gz", "has_sig": true, "md5_digest": "5e92efa306e2510b4eed4626243e7a6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6114, "upload_time": "2019-08-27T09:54:18", "url": "https://files.pythonhosted.org/packages/a9/7c/2725db70532568d1d701665e64f6047e8870b94ee5f7c8704e20071ae7de/openvpn-status-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "230bb1fcee7bb59e87b4c5d329a963eb", "sha256": "49d113759cfefd72e404021c95aed72501edff54a034674012b0a4c84aabea29" }, "downloads": -1, "filename": "openvpn_status-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "230bb1fcee7bb59e87b4c5d329a963eb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8328, "upload_time": "2019-08-27T09:54:15", "url": "https://files.pythonhosted.org/packages/74/0d/c42e22bd12f8f37384213bb986b546a560e96a76cba35528e759c0fe8882/openvpn_status-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e92efa306e2510b4eed4626243e7a6d", "sha256": "4ac6a6ec6069c7d6fb3e9d73ab109f9390a0d0ecb2dc940553aa6d751fd7fb85" }, "downloads": -1, "filename": "openvpn-status-0.2.1.tar.gz", "has_sig": true, "md5_digest": "5e92efa306e2510b4eed4626243e7a6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6114, "upload_time": "2019-08-27T09:54:18", "url": "https://files.pythonhosted.org/packages/a9/7c/2725db70532568d1d701665e64f6047e8870b94ee5f7c8704e20071ae7de/openvpn-status-0.2.1.tar.gz" } ] }