{ "info": { "author": "Michael Hirsch, Ph.D.", "author_email": "scivision@users.noreply.github.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Framework :: AsyncIO", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: End Users/Desktop", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "Intended Audience :: Telecommunications Industry", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Security", "Topic :: System :: Networking", "Topic :: Utilities" ], "description": "[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1431634.svg)](https://doi.org/10.5281/zenodo.1431634)\n\n[![Build Status](https://travis-ci.org/scivision/findssh.svg?branch=master)](https://travis-ci.org/scivision/findssh)\n[![Coverage percent](https://coveralls.io/repos/github/scivision/findssh/badge.svg?branch=master)](https://coveralls.io/github/scivision/findssh?branch=master)\n[![Build status](https://ci.appveyor.com/api/projects/status/jbwdfjqxxbugb20g?svg=true)](https://ci.appveyor.com/project/scivision/findssh)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/scivision/findssh.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/scivision/findssh/context:python)\n[![PyPi versions](https://img.shields.io/pypi/pyversions/findssh.svg)](https://pypi.python.org/pypi/findssh)\n[![Maintainability](https://api.codeclimate.com/v1/badges/c7409d3c78d12c3df14b/maintainability)](https://codeclimate.com/github/scivision/findssh/maintainability)\n[![PyPi Download stats](http://pepy.tech/badge/findssh)](http://pepy.tech/project/findssh)\n\n# Find SSH servers (without NMAP)\n\nPlatform-independently find SSH servers (or other services with open ports) on an IPv4 subnet, WITHOUT NMAP.\nScan entire IPv4 subnet in less than 1 second using Python standard library `asyncio` coroutines and a single thread.\n\nThe `asyncio` coroutine method uses ONE thread and is significantly *faster* than `concurrent.futures.ThreadPoolExecutor`, even (perhaps especially) with hundreds of threads in the ThreadPool.\n\nAlthough speed advantages weren't seen in our testing, `findssh` works with PyPy as well.\n\nMatlab `findssh.m` works similarly.\n\n## Install\n\nJust run `FindSSH.py` directly.\nTo allow use from other programs, you can install by:\n\n pip install findssh\n\nor from this repo:\n\n pip install -e .\n\n\n## Usage\n\nfrom command line:\n```sh\nfindssh\n```\n\n\n### Command line options\n\n* `-s` check the string from the server to attempt to verify the correct service has been found\n* `-t` timeout per server (seconds) useful for high latency connection\n* `-b` baseip (check other subnet besides your own)\n* `-p` network port to scan (default 22)\n\n## Benchmark\n\nThese tests used 500 ms timeout on WiFi.\n\nCoroutine (single thread, fast, lean, recommended):\n\n```ipython\n%timeit findssh.main()\n\n522 ms \u00b1 1.26 ms per loop (mean \u00b1 std. dev. of 7 runs, 1 loop each)\n```\n\nThread pool (100 thread max, slow, heavy):\n\n```ipython\n%timeit findssh.threadpool.main()\n\n1.39 s \u00b1 213 ms per loop (mean \u00b1 std. dev. of 7 runs, 1 loop each)\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/scivision/findssh", "keywords": "port-scan,ssh", "license": "", "maintainer": "", "maintainer_email": "", "name": "findssh", "package_url": "https://pypi.org/project/findssh/", "platform": "", "project_url": "https://pypi.org/project/findssh/", "project_urls": { "Homepage": "https://github.com/scivision/findssh" }, "release_url": "https://pypi.org/project/findssh/1.3.0/", "requires_dist": null, "requires_python": ">= 3.5", "summary": "find open servers on your IPv4 subnet, e.g. SSH", "version": "1.3.0" }, "last_serial": 5536228, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "af16e6ab74da7b22f88e531907d500c9", "sha256": "1efbb402bc53540827363c3623b46105a9a689e43b9d632ff1330dfa27d98d86" }, "downloads": -1, "filename": "findssh-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "af16e6ab74da7b22f88e531907d500c9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.3", "size": 3507, "upload_time": "2018-02-28T18:10:38", "url": "https://files.pythonhosted.org/packages/d0/f6/a4f1692c55f83d6128b117da7f18cc77416077f0df90def51f478dbab7f8/findssh-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c3c9c40dc044136f5b16b2b5be92e5b3", "sha256": "d40e697b60d2d45278f54154fbed2bb24b24935e3de1338f2296eef2979bd532" }, "downloads": -1, "filename": "findssh-0.0.0.tar.gz", "has_sig": false, "md5_digest": "c3c9c40dc044136f5b16b2b5be92e5b3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 1923, "upload_time": "2018-02-28T18:10:39", "url": "https://files.pythonhosted.org/packages/6d/43/a72960fda1b8950b8dbd46baf1ecf589fddbb1942f6d408a7c86e9512857/findssh-0.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "10c41277e0be4648cddeff9d34c54ba3", "sha256": "981ed08047ad12aa55910a98d57b7d2080e1e87ab15de5c80ff4ff960a39559b" }, "downloads": -1, "filename": "findssh-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "10c41277e0be4648cddeff9d34c54ba3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.3", "size": 5715, "upload_time": "2018-02-28T18:33:01", "url": "https://files.pythonhosted.org/packages/ce/03/79e29afa539b631124b06675af6245b748955d4213a7a150b447f7b9b94b/findssh-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5f0695b9a55f043e092cf6c189c3ac6", "sha256": "d8f1bef3e9834e6a9b015b35d77109364db0be6b762491be52570d59421fa6f8" }, "downloads": -1, "filename": "findssh-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a5f0695b9a55f043e092cf6c189c3ac6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 3896, "upload_time": "2018-02-28T18:33:03", "url": "https://files.pythonhosted.org/packages/69/37/1fdba8e0dccb24aafe9ec0016498b1d57a77a587493a77c4078d97c887c0/findssh-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ad2f6c06ef421612ccbbea636a4652b3", "sha256": "2b8ef1dea68b9ffa832d0552adae0c825ce6a10bb5a72e784581f80881f88b18" }, "downloads": -1, "filename": "findssh-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ad2f6c06ef421612ccbbea636a4652b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.3", "size": 5715, "upload_time": "2018-02-28T18:48:53", "url": "https://files.pythonhosted.org/packages/d9/6a/67aaac5e63f5c624bfb0f17fb8b2d8f7aad74d0cb8609aadf35cf16d764c/findssh-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2eee97e514de7fbb66eacb479b1f02a6", "sha256": "575e7a409c4e7e9c43ca73bb78558e3fcd7208c81caf69d8372c138bf3952e43" }, "downloads": -1, "filename": "findssh-1.0.2.tar.gz", "has_sig": false, "md5_digest": "2eee97e514de7fbb66eacb479b1f02a6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 3891, "upload_time": "2018-02-28T18:48:56", "url": "https://files.pythonhosted.org/packages/3f/8d/0fc39ae7ec6ef00f98260ebab18eb033e8bfdc113f3a29062066d579cd35/findssh-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7f79d7017dbdac63ca5bb43a56d640db", "sha256": "9dd94d590e9e0b30aa2c907213bc0b99db821aca6047a6f62b8b1e574de5a7a9" }, "downloads": -1, "filename": "findssh-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7f79d7017dbdac63ca5bb43a56d640db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 6161, "upload_time": "2018-03-25T11:28:28", "url": "https://files.pythonhosted.org/packages/f6/d4/b62da29194406f5c6af0071de7e175d94e66abb798152564c94e32c23926/findssh-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cea3f6510c6b94c0e511f82755739858", "sha256": "bc28dd8dc75210d9fa9be01a8d10003722ecf62d83043a7b01b64b7275deecea" }, "downloads": -1, "filename": "findssh-1.0.3.tar.gz", "has_sig": false, "md5_digest": "cea3f6510c6b94c0e511f82755739858", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4169, "upload_time": "2018-03-25T11:28:29", "url": "https://files.pythonhosted.org/packages/ae/45/7bc4af6d6eb1b9866c6e43576accd821c89ec5d8897270325dfe6c4dce31/findssh-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "f5e4b3991d9ec1f9bda24fe2f2bc0fd8", "sha256": "cb31c052827d93432d0ef80646da74b53d2aaec29916acd9f19996c6ad96492a" }, "downloads": -1, "filename": "findssh-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f5e4b3991d9ec1f9bda24fe2f2bc0fd8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 6327, "upload_time": "2018-05-16T15:21:37", "url": "https://files.pythonhosted.org/packages/80/ac/be54f8108741d7aaa508aa8509ab3ce7e112990d23c52a348d9b17b2f9d0/findssh-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2810b85077b2ad1dae29497f5e4f2b6e", "sha256": "00af176351019746e6478784ee88d7ede4176ed3cfde15e90d12c3e70cbca0b6" }, "downloads": -1, "filename": "findssh-1.0.4.tar.gz", "has_sig": false, "md5_digest": "2810b85077b2ad1dae29497f5e4f2b6e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4278, "upload_time": "2018-05-16T15:21:38", "url": "https://files.pythonhosted.org/packages/d8/aa/c2cd01f164552f9b9bbcaa7c746f25852eb4c28242e483042f1c2e19631f/findssh-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "4da540192eb640b63f67d1e6cd7b2956", "sha256": "ba36751d7ddc12e20bdec5cd653d4977384f03dafdb8b8f556b89dfec29e383d" }, "downloads": -1, "filename": "findssh-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4da540192eb640b63f67d1e6cd7b2956", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 6268, "upload_time": "2018-05-30T15:29:09", "url": "https://files.pythonhosted.org/packages/1c/4e/1c800f44c2586cd540c09673dfc43d226aba00515fdc84dfd636d44d0ffc/findssh-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "670dea6d3dd7a7506111470e7d38787e", "sha256": "4a6f4ce7c4e9c26dadcc9c7fe97d43fb983a5c62bc772cc8ea0bd60f3ab9282f" }, "downloads": -1, "filename": "findssh-1.0.5.tar.gz", "has_sig": false, "md5_digest": "670dea6d3dd7a7506111470e7d38787e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4244, "upload_time": "2018-05-30T15:29:11", "url": "https://files.pythonhosted.org/packages/3a/da/8851f4c2a5445583c5959ed3d0d695c684b734894fb4720562b62eeaecc4/findssh-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "042443a07c7fcb3b7d441ac1595c7ef8", "sha256": "47da7107783ce22e696bd44877522ed4faecc9a9e042d33387cd00367abe1264" }, "downloads": -1, "filename": "findssh-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "042443a07c7fcb3b7d441ac1595c7ef8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4647, "upload_time": "2018-06-20T19:46:48", "url": "https://files.pythonhosted.org/packages/8f/c8/c3557d4f3f2b39d710d1d46b9cf5872a31ac313789e792a1713f41b26b7e/findssh-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "004ccbfb870d169ce48183ec10d2d7da", "sha256": "497a2e25a1289e209f396f3851ec7c2c097ddfb9e6f8a44dc21275c64aa4c2a2" }, "downloads": -1, "filename": "findssh-1.0.6.tar.gz", "has_sig": false, "md5_digest": "004ccbfb870d169ce48183ec10d2d7da", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4368, "upload_time": "2018-06-20T19:46:49", "url": "https://files.pythonhosted.org/packages/fd/99/c1c74d5dc4e025b2800244194fae9cd15ae93668b31c950475d65ed6a7ba/findssh-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "699392450e9733de1b40b8b50ea21b75", "sha256": "2a9f6b5ec42c0081c8142d1be20998bd1a0e949a552b8b0de4a4a642c98bdb5e" }, "downloads": -1, "filename": "findssh-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "699392450e9733de1b40b8b50ea21b75", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3189, "upload_time": "2018-06-29T16:16:41", "url": "https://files.pythonhosted.org/packages/c5/4e/e7b1952e365baa1cc663f5abef84131e39145747719239d1f2074744e4fe/findssh-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f26dff7c3f7acca66ffb858206ea16f4", "sha256": "e9fe43ae0a834f81874d6adf36aa03de13c9e7c01afdf1bf764df8a19f3b4cc9" }, "downloads": -1, "filename": "findssh-1.0.7.tar.gz", "has_sig": false, "md5_digest": "f26dff7c3f7acca66ffb858206ea16f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4312, "upload_time": "2018-06-29T16:16:43", "url": "https://files.pythonhosted.org/packages/8e/c3/e801f80dde4accd2749e4e40dee1a124185e5749fb2123d9bb05a1cd0733/findssh-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "5d1531aa91fbfec9960f7498081fba61", "sha256": "263755efecb816da19a39439b96b85f103072cdb48c85678f06039cfb4c5f75b" }, "downloads": -1, "filename": "findssh-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "5d1531aa91fbfec9960f7498081fba61", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6", "size": 3171, "upload_time": "2018-07-08T02:50:54", "url": "https://files.pythonhosted.org/packages/e4/ab/cb6ec43739ab0ac83e73d4dc804220edd30da49b4a101b6387e81a955330/findssh-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "080752f70f5480a9b98be4f2954fdc6f", "sha256": "2491edb2ed9a0ca124e985fe73b050b4e63ce8f504053ec4473b5a5defeae534" }, "downloads": -1, "filename": "findssh-1.0.8.tar.gz", "has_sig": false, "md5_digest": "080752f70f5480a9b98be4f2954fdc6f", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 4482, "upload_time": "2018-07-08T02:50:55", "url": "https://files.pythonhosted.org/packages/e9/2f/1dd95dde005c68c5b611afd0b9f449e2bc3a25a03b0980cbe7ef3ec5c289/findssh-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "10a15dd37041d78cc6c03126a65e2885", "sha256": "93a6b98604ecd50f4da6b1186c46d239f1735c93aff55226ec3f0445baafc2f8" }, "downloads": -1, "filename": "findssh-1.0.9.tar.gz", "has_sig": false, "md5_digest": "10a15dd37041d78cc6c03126a65e2885", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 5118, "upload_time": "2018-08-22T02:36:07", "url": "https://files.pythonhosted.org/packages/11/f4/d0f91a2ac5df4ab73286414f7421528c6a83283c3eb49182c462a1f267d4/findssh-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "7c17dec5dd5114e113c710dff7b87164", "sha256": "4b17326350f4273924e83c0aba327abede28f56884a93f44ccdb87484dcbbb53" }, "downloads": -1, "filename": "findssh-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7c17dec5dd5114e113c710dff7b87164", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 3292, "upload_time": "2018-09-21T20:57:00", "url": "https://files.pythonhosted.org/packages/af/5f/2eb6ced00fee6d61e7430d90d241c032c795d1f4bfdb600df1d1c2993a57/findssh-1.1.0.tar.gz" } ], "1.1.0.1": [ { "comment_text": "", "digests": { "md5": "a5154a62257b65c6177d3784d325a4c4", "sha256": "fe2ceb06e3434fad1eb590397d33f1b21c9b72e3dcc7a69dc54d31635c32f9bb" }, "downloads": -1, "filename": "findssh-1.1.0.1.tar.gz", "has_sig": false, "md5_digest": "a5154a62257b65c6177d3784d325a4c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 5016, "upload_time": "2019-02-14T18:40:42", "url": "https://files.pythonhosted.org/packages/81/82/0844f57059e1213d3acb30d847d2d314e0084be40fea51363d2d3b4b6b22/findssh-1.1.0.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "b7ff8bffd149e599f8f80f6fe76cc987", "sha256": "bda5bd9d3d2d52e355e71832afcb1ed7e7132f4ebc86e90cab016e5510cea4c0" }, "downloads": -1, "filename": "findssh-1.2.0.tar.gz", "has_sig": false, "md5_digest": "b7ff8bffd149e599f8f80f6fe76cc987", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 5419, "upload_time": "2019-02-17T17:34:49", "url": "https://files.pythonhosted.org/packages/c7/df/6e3ca08bf3caf99d09f7e7051c2591cb7d22eea0c56faeffa23241490236/findssh-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "a5190e43ebcbaa14de81257b6851e9c3", "sha256": "ed3a472f04f861e2c3f88114209ac5b2742bfea8af1e2816507d6a1cdf393ed4" }, "downloads": -1, "filename": "findssh-1.3.0.tar.gz", "has_sig": false, "md5_digest": "a5190e43ebcbaa14de81257b6851e9c3", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 5656, "upload_time": "2019-07-15T17:54:48", "url": "https://files.pythonhosted.org/packages/1d/a6/35fed1f89985ea23c1a89013fcac3b124f32568786e6bf76936b513bfd0b/findssh-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a5190e43ebcbaa14de81257b6851e9c3", "sha256": "ed3a472f04f861e2c3f88114209ac5b2742bfea8af1e2816507d6a1cdf393ed4" }, "downloads": -1, "filename": "findssh-1.3.0.tar.gz", "has_sig": false, "md5_digest": "a5190e43ebcbaa14de81257b6851e9c3", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 5656, "upload_time": "2019-07-15T17:54:48", "url": "https://files.pythonhosted.org/packages/1d/a6/35fed1f89985ea23c1a89013fcac3b124f32568786e6bf76936b513bfd0b/findssh-1.3.0.tar.gz" } ] }