{ "info": { "author": "Ariel Antonitis", "author_email": "arant@mit.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: System :: Networking :: Firewalls" ], "description": ".. |pypi| image:: https://img.shields.io/pypi/v/pynat.svg\n.. _pypi: https://pypi.python.org/pypi/pynat\n.. |license| image:: https://img.shields.io/github/license/arantonitis/pynat.svg\n.. _license: https://github.com/arantonitis/pynat/tree/master/LICENSE\n\nPyNAT\n*****\n|pypi|_ |license|_\n\nDiscover external IP addresses and NAT topologies using STUN (Simple Traversal of UDP Through Network Address Translators).\n\nPyNAT follows `RFC 3489`_, and is inspired by a similar program for \nPython 2.x called PyStun_. PyNAT supports Python 2.7 and later.\n\n.. _RFC 3489: https://tools.ietf.org/html/rfc3489\n.. _PyStun: https://github.com/jtriley/pystun\n\nInstallation\n============\nPyNAT requires Python 2.7 or later.\n\nFrom PyPI\n---------\nInstall PyNAT by running ``pip3 install pynat`` from the command line.\n\n.. note::\n\n On some Linux systems, installation may require running pip with root permissions, or running ``pip3 install pynat --user``. The latter may require exporting `~/.local/bin` to PATH.\n \nFrom GitHub\n-----------\nClone or download the `git repo`_, navigate to the directory, and run::\n\n python3 setup.py sdist\n cd dist\n pip3 install pynat-.tar.gz\n \n.. _git repo: https://github.com/arantonitis/pynat\n\nUsage\n=====\nTo get information about the network topology and external IP/port used, run ``pynat``::\n\n Network type: UDP Firewall \n Internal address: 127.0.0.1:54320 \n External address: 127.0.0.1:54320\n \nRun ``pynat -h`` or ``pynat --help`` for more options::\n\n usage: pynat [-h] [--source_ip SOURCE_IP] [--source-port SOURCE_PORT]\n [--stun-host STUN_HOST] [--stun-port STUN_PORT]\n\n PyNAT v0.0.0 Discover external IP addresses and NAT topologies using STUN.\n Copyright (C) 2018 Ariel Antonitis. Licensed under the MIT License.\n\n optional arguments:\n -h, --help show this help message and exit\n --source_ip SOURCE_IP\n The source IPv4 address to bind to.\n --source-port SOURCE_PORT\n The source port to bind to.\n --stun-host STUN_HOST\n The STUN host to use for queries.\n --stun-port STUN_PORT\n The port of the STUN host to use for queries.\n \nTo use PyNAT inside a Python shell or project::\n\n from pynat import get_ip_info\n topology, ext_ip, ext_port = get_ip_info()\n \nTo also get information about the internal IP, if unknown::\n\n topology, ext_ip, ext_port, int_ip = get_ip_info(include_internal=True)\n \nDevelopment\n===========\nPyNAT versioning functions on a ``MAJOR.MINOR.PATCH.[DEVELOP]`` model. Only stable, non development releases will be published to PyPI. Because PyNAT is still a beta project, the ``MAJOR`` increment will be 0. Minor increments represent new features. Patch increments represent problems fixed with existing features.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/arantonitis/pynat", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pynat", "package_url": "https://pypi.org/project/pynat/", "platform": "", "project_url": "https://pypi.org/project/pynat/", "project_urls": { "Homepage": "https://github.com/arantonitis/pynat" }, "release_url": "https://pypi.org/project/pynat/0.6.2/", "requires_dist": null, "requires_python": "", "summary": "Discover external IP addresses and NAT topologies using STUN.", "version": "0.6.2" }, "last_serial": 5466410, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "bf528e0d812fe36220c8cd0d8af87742", "sha256": "e354039cf555e1b258a9ac1c36a41f0e3f0e47241faf0876ec745ed8a1860803" }, "downloads": -1, "filename": "pynat-0.0.0.tar.gz", "has_sig": false, "md5_digest": "bf528e0d812fe36220c8cd0d8af87742", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4588, "upload_time": "2018-02-22T03:26:53", "url": "https://files.pythonhosted.org/packages/36/1b/7899be69845e28238108083b3a1d548891e8d9a607adac9dafe3e88a946a/pynat-0.0.0.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "0f8a579f917a8b58788cf9f74b5f85ed", "sha256": "ae85a557aff96200690f186c0b60d907348dd56e3480d8ef580a60aee633dd0f" }, "downloads": -1, "filename": "pynat-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f8a579f917a8b58788cf9f74b5f85ed", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8217, "upload_time": "2018-02-22T04:03:51", "url": "https://files.pythonhosted.org/packages/96/45/0970893e043001cafeb5b1fc9ed28c36d05994f3410ff7908563772ea489/pynat-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66ab6be8e4d47515e484c76cfde7da76", "sha256": "ae6df08efeb04f0776d5dc4bdaf420a441d038c7604fecdcc65d524705c69286" }, "downloads": -1, "filename": "pynat-0.1.0.tar.gz", "has_sig": false, "md5_digest": "66ab6be8e4d47515e484c76cfde7da76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5802, "upload_time": "2018-02-22T04:03:41", "url": "https://files.pythonhosted.org/packages/f8/55/2631fd65da9f527f9a3168e8e77a310e0a1b6610add329bddba1fa41846a/pynat-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ed5d817fe7279e7716f15ce857124517", "sha256": "585fdfeb87457c484119e58fadde6431938a7f5addb4f5f4754a352e81eef7e9" }, "downloads": -1, "filename": "pynat-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ed5d817fe7279e7716f15ce857124517", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8278, "upload_time": "2018-02-22T04:54:38", "url": "https://files.pythonhosted.org/packages/df/c3/f96a9fe6f3d4d18759642f3ea8dcdfcdce6e5506542aaf7c99e4c0d8b861/pynat-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0251d706bb9cf598bd23283262ff35d1", "sha256": "d4ea6e4c3653bfe0b0cfb030364ece4be66c640314b9a36dcf2bb80c634ce458" }, "downloads": -1, "filename": "pynat-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0251d706bb9cf598bd23283262ff35d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5819, "upload_time": "2018-02-22T04:54:31", "url": "https://files.pythonhosted.org/packages/fe/25/25c0ac184d65b6373a54247b27901d18ee7aaf45664601f612c2a0d4c51d/pynat-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3df95cb0cc6db7a9eb364d9e946179cb", "sha256": "4b073786b89db09f144b59ee13a35209b5f5426d38669cdb9d0a0c7b8d2859d7" }, "downloads": -1, "filename": "pynat-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3df95cb0cc6db7a9eb364d9e946179cb", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8451, "upload_time": "2018-02-22T23:10:24", "url": "https://files.pythonhosted.org/packages/0b/58/8811ace32000af21f49aeac380c12a2e2b000ba4a9943698cd817f5aa4d1/pynat-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e2e1d95e3f855bdeddad416022f555de", "sha256": "95bb2395301c75e96ccef1c951d5df3264e627fd43259421a833eaf5f9986b37" }, "downloads": -1, "filename": "pynat-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e2e1d95e3f855bdeddad416022f555de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5951, "upload_time": "2018-02-22T23:10:13", "url": "https://files.pythonhosted.org/packages/a2/65/4a643df8d577b1bb2b2d75dd4a3e703234a4df9835814ca9a962f20d1148/pynat-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9230e6a5596d75f2a72eef5dcc55f4d7", "sha256": "1df1e5eeb9698f1c3cf449ff40209e97fc46fb771b29518c3d99cbb59fe91ec5" }, "downloads": -1, "filename": "pynat-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9230e6a5596d75f2a72eef5dcc55f4d7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8629, "upload_time": "2018-02-26T04:52:08", "url": "https://files.pythonhosted.org/packages/fc/eb/b0728e54919c1c063da0fc3172452d240d5ef585786bb4df792e50d758d2/pynat-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15d8853bb1772da6e07cb0c09e9bec2c", "sha256": "c67d16cc9dce9db8e72856cdbf1f5aeae2774787a8ca459103c0a394d9edd21a" }, "downloads": -1, "filename": "pynat-0.4.0.tar.gz", "has_sig": false, "md5_digest": "15d8853bb1772da6e07cb0c09e9bec2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6130, "upload_time": "2018-02-26T04:52:00", "url": "https://files.pythonhosted.org/packages/93/7d/6a898c71c4e1865a4abd2e6e2565a115dbfa417be2fa9840179b887172a6/pynat-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "74c107125e3b971070c0f1dafafc27ff", "sha256": "511ba077cb3b6fe3dd1cc27cc9a1c73b555b69ac5aecf0096a8039199c306053" }, "downloads": -1, "filename": "pynat-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "74c107125e3b971070c0f1dafafc27ff", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8653, "upload_time": "2018-02-26T05:17:56", "url": "https://files.pythonhosted.org/packages/ec/10/3431dfcbdd60b0f9b5af473f702e22001bb3cf59a7cc445954251dc63e88/pynat-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33e72784d33dbcdb8ab264a99554718c", "sha256": "90b43cf78a0997b77617a1262fe9ed0d49e227022cd5e4e5fca02e164eb0b613" }, "downloads": -1, "filename": "pynat-0.5.0.tar.gz", "has_sig": false, "md5_digest": "33e72784d33dbcdb8ab264a99554718c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6159, "upload_time": "2018-02-26T05:17:55", "url": "https://files.pythonhosted.org/packages/33/2f/04f1b0bca8b19973ce13249f403df9a1bf31da2fdee75fb5a8795eac7bdb/pynat-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "6f9826546ce4c7cbd6b4243aab4947d2", "sha256": "bbc4d008cac526cb3401f05824ae08fa473f120506ad8cc5bc7ed9532ba27fbb" }, "downloads": -1, "filename": "pynat-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f9826546ce4c7cbd6b4243aab4947d2", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8882, "upload_time": "2018-08-16T11:11:39", "url": "https://files.pythonhosted.org/packages/2b/06/be8a42b1a55b5956717da8d0e816d8bc15ed6385d7df7e1df53db5b85344/pynat-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a02e0e956548f70030b8dea6887e475", "sha256": "bcf78540c28a8d802c6217af089f6169396540a068f41df26248f1d11ca37230" }, "downloads": -1, "filename": "pynat-0.6.0.tar.gz", "has_sig": false, "md5_digest": "0a02e0e956548f70030b8dea6887e475", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6447, "upload_time": "2018-08-16T11:11:38", "url": "https://files.pythonhosted.org/packages/73/32/2fd7e4fc10d3fb460a982b5f84a94f65ecec35ce61dd19a302b1954f4f7f/pynat-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "d23a0e9d6084c3d9da7baba7dc91e040", "sha256": "db107c85f7c8c5368e93dbf1dff21f88cabbd30f288a0c07c699bf3cb6319e67" }, "downloads": -1, "filename": "pynat-0.6.1.tar.gz", "has_sig": false, "md5_digest": "d23a0e9d6084c3d9da7baba7dc91e040", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6381, "upload_time": "2018-11-16T04:23:39", "url": "https://files.pythonhosted.org/packages/b6/92/c1b7fbfd5b1d7f0ce5542b4d04597e33f21dae16581c8930e70eb6eebe3c/pynat-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "e2c9425e68c87fbcd7ce7b84deb55c34", "sha256": "83710e4b8b592cfaa423045165ef1a31f4c8008a449ac6ca1b29eae1b07312f2" }, "downloads": -1, "filename": "pynat-0.6.2.tar.gz", "has_sig": false, "md5_digest": "e2c9425e68c87fbcd7ce7b84deb55c34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6600, "upload_time": "2019-06-29T21:42:32", "url": "https://files.pythonhosted.org/packages/49/ec/a18310fdcfae6df0af8e2c87310c8381ff6978de20b411a99d1bd3a69ffd/pynat-0.6.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e2c9425e68c87fbcd7ce7b84deb55c34", "sha256": "83710e4b8b592cfaa423045165ef1a31f4c8008a449ac6ca1b29eae1b07312f2" }, "downloads": -1, "filename": "pynat-0.6.2.tar.gz", "has_sig": false, "md5_digest": "e2c9425e68c87fbcd7ce7b84deb55c34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6600, "upload_time": "2019-06-29T21:42:32", "url": "https://files.pythonhosted.org/packages/49/ec/a18310fdcfae6df0af8e2c87310c8381ff6978de20b411a99d1bd3a69ffd/pynat-0.6.2.tar.gz" } ] }