{ "info": { "author": "Marco Rougeth", "author_email": "marco@rougeth.com", "bugtrack_url": null, "classifiers": [], "description": "# knock... knock...\n\n![](https://media.giphy.com/media/4WONcbcxCOYRa/giphy.gif)\n\nYet another port knock client.\n\n\n#### Installing\n\n`$ pip install knocker`\n\n\n#### Running\n\n```bash\n$ knocker your.server.domain 8001 8002 8003\nknock... knock...\n```\n\n\n##### Getting help\n```\n$ knocker -h \nusage: knocker [-h] [-d DELAY] host ports [ports ...]\n\nKnock host and port using tcp connection\n\npositional arguments:\n host Hostname or IP address of the host\n ports Ports to knock\n\noptional arguments:\n -h, --help show this help message and exit\n -d DELAY, --delay DELAY\n Milliseconds between each knock\n\n```\n\n#### Example server\n\nThe `example_server.py` is just a socket server that listen 3 different\nports and print a message after receive a ping on it.\n\n```\n$ python example_server.py\nListening ports: 49485 38749 42846\n```\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/rougeh/knocker", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "knocker", "package_url": "https://pypi.org/project/knocker/", "platform": "", "project_url": "https://pypi.org/project/knocker/", "project_urls": { "Homepage": "http://github.com/rougeh/knocker" }, "release_url": "https://pypi.org/project/knocker/0.1.4/", "requires_dist": null, "requires_python": "", "summary": "Port knocking client", "version": "0.1.4" }, "last_serial": 3682167, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "9e3949a1c1d77d27ae59c174a14af8f5", "sha256": "cb518c0fa06281e67f29df8a20395eadcdcf457e0758c91bb386c31e75076d61" }, "downloads": -1, "filename": "knocker-0.1.1-py3.6.egg", "has_sig": false, "md5_digest": "9e3949a1c1d77d27ae59c174a14af8f5", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 2451, "upload_time": "2017-08-13T02:02:59", "url": "https://files.pythonhosted.org/packages/2e/2e/dde5e94f6d19fa3aca00c9b27541767280b3ac61fedcb6f584f96ed52114/knocker-0.1.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "de9f80cb17e17209e6aadfda286c5b4b", "sha256": "d158e4cc79c83b083405faeae07229b4fde264bc7d76ececc5b26f726f1710c6" }, "downloads": -1, "filename": "knocker-0.1.1.tar.gz", "has_sig": false, "md5_digest": "de9f80cb17e17209e6aadfda286c5b4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 729, "upload_time": "2017-05-13T04:45:34", "url": "https://files.pythonhosted.org/packages/58/24/6bb272227e531a348ce846d2be4c01d2aa0eb790107ee749962bb41f2dcc/knocker-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "25703a6a96146cba72419f80b38361aa", "sha256": "d1d3958900f133dd0c6f22b6c4d79a108d87677d76a4e47d427260131b04e758" }, "downloads": -1, "filename": "knocker-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "25703a6a96146cba72419f80b38361aa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2588, "upload_time": "2017-08-13T02:02:56", "url": "https://files.pythonhosted.org/packages/4a/2b/5e43fa8815ae219002ba0b53203364900d3c7f2f4232395d938997c540b1/knocker-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c799d7c198cd9cb458c86653089f0ba7", "sha256": "908e56e07661c8cffd63fada9f7c974b4db7d5f9a886e50d80e8e07da15d06d8" }, "downloads": -1, "filename": "knocker-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c799d7c198cd9cb458c86653089f0ba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1240, "upload_time": "2017-08-13T02:03:01", "url": "https://files.pythonhosted.org/packages/c0/c5/d563799b354cccffabc5107e99a308dd0aea1f253c472335a3ccd3262bc4/knocker-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "29993042ebbd755fecd351fd4e8ab9f7", "sha256": "811c212a958e27bccc7298423301da67ba47d6110e77c6f714c7fac97eeb5406" }, "downloads": -1, "filename": "knocker-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "29993042ebbd755fecd351fd4e8ab9f7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2654, "upload_time": "2018-03-19T00:23:24", "url": "https://files.pythonhosted.org/packages/be/2c/058ce2268c7b151e07ead2eeaaddda542b64107dee0765bb292f292d14ce/knocker-0.1.3-py2.py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "19bf7f13faef0daca3ae53d93f0668ae", "sha256": "8f2927bcf4b038886953043ee40b4ca06c767a74c8bb8ce2c39f072ef84d002f" }, "downloads": -1, "filename": "knocker-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19bf7f13faef0daca3ae53d93f0668ae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3558, "upload_time": "2018-03-19T00:26:53", "url": "https://files.pythonhosted.org/packages/cd/73/69eddb169a69b30debe807f4fbdef320af74fe90873e629d7eb23ed9d2aa/knocker-0.1.4-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "19bf7f13faef0daca3ae53d93f0668ae", "sha256": "8f2927bcf4b038886953043ee40b4ca06c767a74c8bb8ce2c39f072ef84d002f" }, "downloads": -1, "filename": "knocker-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19bf7f13faef0daca3ae53d93f0668ae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3558, "upload_time": "2018-03-19T00:26:53", "url": "https://files.pythonhosted.org/packages/cd/73/69eddb169a69b30debe807f4fbdef320af74fe90873e629d7eb23ed9d2aa/knocker-0.1.4-py2.py3-none-any.whl" } ] }