{ "info": { "author": "Rob Landry", "author_email": "rob@landry.me", "bugtrack_url": null, "classifiers": [], "description": "# pyNetgear_Enhanced #\n\npyNetgear_Enhanced provides an easy to use Python API to control your Netgear router. It uses the SOAP-api on modern Netgear routers to communicate. It is built by reverse engineering the requests made by the [NETGEAR Genie app](https://play.google.com/store/apps/details?id=com.dragonflow).\n\npyNetgear_Enhanced works with Python 3.\n\nIf you are connected to the network of the Netgear router, a host is optional.\nIf you are connected via a wired connection to the Netgear router, a password is optional.\nThe username defaults to admin.\nThe port defaults to 5000.\nThe ssl defaults to false.\nYou can specify url and it will take precedence on host/port/ssl parameters.\nThis allows the use of HTTPS, `https://orbilogin.com` for example.\n\nThanks to: \n[MatMaul](https://github.com/MatMaul/pynetgear) for the original code. \n[gruijter](https://github.com/gruijter/netgear.js) for additional SOAP endpoints. \n\n\n## It currently supports the following operations: ##\n\n* **login** \nLogs in to the router. Will return True or False to indicate success.\n\n* **allow_block_device** \nAllows user to block/unblock devices from accessing router by specifying mac_addr and new device_status (Block/Allow) \n**Note:** In order to use this function, Remote Management _must_ be enabled in the router's admin settings.\n\n#### SERVICE_DEVICE_CONFIG: ####\n\n* **reboot** \nReboot device.\n\n* **check_new_firmware** \nReturn a dict containing the Firmware info.\n\n* **set_block_device_enable** \nEnable/Disable Access Control.\n\n* **get_block_device_enable_status** \nReturn a dict containing the Status of Access Control.\n\n* **get_traffic_meter_statistics** \nReturn a dict containing the traffic meter information from the router (if enabled in the webinterface).\n\n* **enable_traffic_meter** \nEnable/Disable Traffic Meter.\n\n* **get_traffic_meter_enabled** \nReturn a dict containing the Status of Traffic Meter.\n\n* **get_traffic_meter_options** \nReturn a dict containing the Traffic Meter Options.\n\n#### SERVICE_PARENTAL_CONTROL: ####\n\n* **enable_parental_control** \nEnable/Disable Parental Control.\n\n* **get_parental_control_enable_status** \nReturn a dict containing the Status of Parental Control.\n\n* **get_all_mac_addresses** \nReturn a dict containing the MAC Addresses.\n\n* **get_dns_masq_device_id** \nReturn a dict containing the DNS Masq device IDs.\n\n#### SERVICE_DEVICE_INFO: ####\n\n* **get_info** \nReturn a dict containing the Router Information.\n\n* **get_support_feature_list_XML** \nReturn a dict containing the Supported Features.\n\n* **get_attached_devices** \nReturns a list of named tuples describing the device signal, ip, name, mac, type, link_rate and allow_or_block.\n\n* **get_attached_devices_2** \nReturns a list of named tuples describing the device signal, ip, name, mac, type, link_rate, allow_or_block, device_type, device_model, ssid and conn_ap_mac. \nThis call is slower and probably heavier on the router load.\n\n#### SERVICE_ADVANCED_QOS: ####\n\n* **set_speed_test_start** \nStarts the Speed Test.\n\n* **get_speed_test_result** \nReturn a dict containing the Speed Test Results. \nYou will have to wait several seconds following starting the speed test to get the final results.\n\n* **set_qos_enable_status** \nEnable/Disable QOS.\n\n* **get_qos_enable_status** \nReturn a dict containing the Status of QOS.\n\n* **get_bandwidth_control_options** \nReturn a dict containing the Bandwidth Control Options.\n\n#### SERVICE_WLAN_CONFIGURATION: ####\n\n* **set_guest_access_enabled** \nEnable/Disable 2.4g Guest WiFi.\n\n* **get_guest_access_enabled** \nReturn a dict containing the Status of 2.4g Guest Wifi.\n\n* **set_guest_access_enabled_2** \nEnable/Disable 2.4g Guest WiFi 2.\n\n* **set_5g_guest_access_enabled** \nEnable/Disable 5g Guest Wifi.\n\n* **get_5g_guest_access_enabled** \nReturn a dict containing the Status of 5g Guest Wifi.\n\n* **get_wpa_security_keys** \nReturn a dict containing the 2.4g WPA Key.\n\n* **get_5g_wpa_security_keys** \nReturn a dict containing the 5g WPA Key.\n\n* **get_2g_info** \nReturn a dict containing the 2.4g Info.\n\n* **get_5g_info** \nReturn a dict containing the 5g Info.\n\n* **get_guest_access_network_info** \nReturn a dict containing the 2.4g Guest Network Info.\n\n* **get_5g_guest_access_network_info** \nReturn a dict containing the 5g Guest Network Info.\n\n\n## Installation ##\n\nYou can install pyNetgear_Enhanced from PyPi using: \n`pip3 install pynetgear_enhanced`.\n\n\n## Usage ##\n\nFor a list of commands run from the console: \n`$ python3 -m pynetgear_enhanced -h`\n\nFor testing append a -t to the command from the console. \n`$ python3 -m pynetgear_enhanced -p='MyEscapedPassword!' --check_fw -t`\n\nTo use within your Python scripts:\n```python\nfrom pynetgear import Netgear\n\nnetgear = Netgear(password=mypassword)\n\nfor i in netgear.get_attached_devices():\n print i\n```\n\n\n## Supported routers ##\nIt has been tested with the Netgear RAX80 router. Previous testing was done with the R6300 and WNDR4500 routers prior to the addition of the advanced options. According to the NETGEAR Genie app description, the following routers should also work:\n\n * Netgear RAX80\n * Netgear Orbi\n * Netgear R7800\n * Netgear R7500v2\n * Netgear R7000\n * Netgear R6900\n * Netgear R6300\n * Netgear R6250\n * Netgear R6200\n * Netgear R6100\n * Netgear N300 - Model: C3000 (Port 80)\n * Netgear Centria (WNDR4700, WND4720)\n * Netgear WNDR4500\n * Netgear WNDR4300\n * Netgear WNDR4000\n * Netgear WNDR3800\n * Netgear WNDR3700v3\n * Netgear WNDR3700v2\n * Netgear WNDR3400v2\n * Netgear WNR3500Lv2\n * Netgear WNR2200\n * Netgear WNR2000v3\n * Netgear WNR2000v4 (Port 80)\n * Netgear WNR1500\n * Netgear WNR1000v2\n * Netgear WNR1000v3\n * Netgear WNDRMAC\n * Netgear WNR612v2", "description_content_type": "text/markdown", "docs_url": null, "download_url": "http://github.com/roblandry/pynetgear_enhanced/archive/v0.2.2.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/roblandry/pynetgear_enhanced", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pynetgear-enhanced", "package_url": "https://pypi.org/project/pynetgear-enhanced/", "platform": "", "project_url": "https://pypi.org/project/pynetgear-enhanced/", "project_urls": { "Download": "http://github.com/roblandry/pynetgear_enhanced/archive/v0.2.2.tar.gz", "Homepage": "http://github.com/roblandry/pynetgear_enhanced" }, "release_url": "https://pypi.org/project/pynetgear-enhanced/0.2.2/", "requires_dist": null, "requires_python": "", "summary": "Access Netgear routers using their SOAP API", "version": "0.2.2" }, "last_serial": 5615667, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4865e0267d9d2fa38abed8ac66b17f2a", "sha256": "f7bcb887de46a043e9ce3191641b3ea0d9c06471cca94f161e6005eff1cfe525" }, "downloads": -1, "filename": "pynetgear_enhanced-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4865e0267d9d2fa38abed8ac66b17f2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13948, "upload_time": "2019-03-23T17:52:16", "url": "https://files.pythonhosted.org/packages/de/82/c2b2b20ace61e9a37a607350925c7807ea3f85287515c9249046759f0715/pynetgear_enhanced-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "656a6ac300700d859ba24bdb6f53bdd8", "sha256": "7c3c1af606c4bbbb483b759fa67b68e5ecc44b4c1ed5c2bf9260f207e3a47e77" }, "downloads": -1, "filename": "pynetgear_enhanced-0.1.1.tar.gz", "has_sig": false, "md5_digest": "656a6ac300700d859ba24bdb6f53bdd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16704, "upload_time": "2019-03-24T00:51:29", "url": "https://files.pythonhosted.org/packages/9f/3b/4c461b20e73d8a043760b211aa213552dfe5d40c28d8c307a874c627efed/pynetgear_enhanced-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "29f9f5e889f346d131d3589a5d7bbc0f", "sha256": "59b3e591252065df2f0e07559e403a56b900eaee195f9719ac7fddb3629dd3b7" }, "downloads": -1, "filename": "pynetgear_enhanced-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "29f9f5e889f346d131d3589a5d7bbc0f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18971, "upload_time": "2019-07-25T21:48:10", "url": "https://files.pythonhosted.org/packages/51/4f/6e85c3d16d23a0bddcf4cd6c42340b6f5fe4e1cfd1552f7bd0f1c794f223/pynetgear_enhanced-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f4d61d22c8b45d7e9a04aaaba759ca2", "sha256": "7b25dc963df2319ea51129166c41d40c35d9a68894f6c7c6f66be3b3164651a6" }, "downloads": -1, "filename": "pynetgear_enhanced-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7f4d61d22c8b45d7e9a04aaaba759ca2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17098, "upload_time": "2019-07-25T21:48:12", "url": "https://files.pythonhosted.org/packages/09/3e/5957cad190fc647bc0f33e385d0279db50c6cb39985b15424a248131addf/pynetgear_enhanced-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7b6c9832975db32f12269f30028c1b31", "sha256": "9f3092cf04c6981546280e9715a36707d0b18de1ea357fdc6c96066a2e9c0156" }, "downloads": -1, "filename": "pynetgear_enhanced-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "7b6c9832975db32f12269f30028c1b31", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 19069, "upload_time": "2019-07-26T22:57:46", "url": "https://files.pythonhosted.org/packages/06/05/dab986be459e579f209bc9b6194c1baefcb0e7347ffa3892e30102858621/pynetgear_enhanced-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c4d54e13c0e9b64368b820292026b12", "sha256": "d0f7e45b03243188ec891d1c640a906d58ec664df96dbc4fccc10a65ae9c8a68" }, "downloads": -1, "filename": "pynetgear_enhanced-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7c4d54e13c0e9b64368b820292026b12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18275, "upload_time": "2019-07-26T22:57:47", "url": "https://files.pythonhosted.org/packages/cd/83/76b1863f50970fe80f33b32b916ed3820044fc06d5dee283206bde4f7468/pynetgear_enhanced-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "31c497749ca4a3dac50b81f8d1a20fa3", "sha256": "d3d854f92d7613a84bb04d0e36dab99550a98b038771ee4730a375e22b63d9b7" }, "downloads": -1, "filename": "pynetgear_enhanced-0.2.2.tar.gz", "has_sig": false, "md5_digest": "31c497749ca4a3dac50b81f8d1a20fa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17074, "upload_time": "2019-07-31T21:18:13", "url": "https://files.pythonhosted.org/packages/1a/96/9ed0f0bdddf302cd563befbeb13f49f0dcc224e738229035f752f5194d02/pynetgear_enhanced-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "31c497749ca4a3dac50b81f8d1a20fa3", "sha256": "d3d854f92d7613a84bb04d0e36dab99550a98b038771ee4730a375e22b63d9b7" }, "downloads": -1, "filename": "pynetgear_enhanced-0.2.2.tar.gz", "has_sig": false, "md5_digest": "31c497749ca4a3dac50b81f8d1a20fa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17074, "upload_time": "2019-07-31T21:18:13", "url": "https://files.pythonhosted.org/packages/1a/96/9ed0f0bdddf302cd563befbeb13f49f0dcc224e738229035f752f5194d02/pynetgear_enhanced-0.2.2.tar.gz" } ] }