# PyIKuaiClient
A Python client for interacting with IKuai routers.
## How to install
```bash
pip install pyikuai
```
## Usage
```python
from pyikuai import IKuaiClient
ikuai_client = IKuaiClient(
url="http://192.168.1.1",
username="your/ikuai/username",
password="your/ikuai/password"
)
```
## Implemented functionality
### mac_group
```python
>>> ikuai_client.list_mac_groups() # get the mac_groups configured
{'total': 2,
'data': [{'id': 1,
'comment': '',
'group_name': 'IPAD',
'addr_pool': '34:b8:ec:42:91:2d'},
{'id': 2,
'comment': 'foo,%20bar',
'group_name': 'test',
'addr_pool': '43:a9:fc:43:97:3d,43:a9:fc:43:97:3f'}]}
>>> ikuai_client.del_mac_group(group_id=3) # delete mac_group with id 3
{'Result': 30000, 'ErrMsg': 'Success'} # succeed even that id does not exists.
>>> ikuai_client.add_mac_group(
group_name="test2",
addr_pools=['43:a9:fc:43:97:3d', '43:a9:fc:43:97:3f'],
comments=["foo2", "bar2"])
{'Result': 30000, 'ErrMsg': 'Success', 'RowId': 3}
>>> ikuai_client.edit_mac_group( # update mac_group id 3 with new comments
group_id=3,
group_name="test2",
addr_pools=['43:a9:fc:43:97:3d', '43:a9:fc:43:97:3f'],
comments=["foo3", "bar3"])
{'Result': 30000, 'ErrMsg': 'Success'}
```
### acl_l7
The functionality related to behavioral control of devices connected, via protocol.
The implemented methods include
`add_acl_l7`, `list_acl_l7`, `edit_acl_l7`, `del_acl_l7`, `disable_acl_l7`, `enable_acl_l7`.
### domain_blacklist
The functionality related to behavioral control of devices connected, via domain blacklist.
The implemented methods include
`add_domain_blacklist`, `list_domain_blacklist`, `edit_domain_blacklist`, `del_domain_blacklist`,
`disable_domain_blacklist`, `enable_domain_blacklist`
### sysstat
Get the system statistics.
```python
>>> ikuai_client.get_sysstat()
{'verinfo': {'modelname': '',
'verstring': '3.7.10 x32 Build202401231339',
'version': '3.7.10',
'build_date': 202401231339,
'arch': 'x86',
'sysbit': 'x32',
'verflags': '',
'is_enterprise': 0,
'support_i18n': 0,
'support_dingtalk': 1,
'support_lcd': 0,
'bootguide': 'hd'},
'cpu': ['0.00%', '0.00%'],
'memory': {'total': 886264,
'available': 618720,
'free': 538644,
'cached': 45460,
'buffers': 69132,
'used': '30%'},
'stream': {'connect_num': 52,
'upload': 821,
'download': 432,
'total_up': 671137724,
'total_down': 4459837833},
'cputemp': []}
>>> ikuai_client.get_sysstat(["verinfo"])
{'verinfo': {'modelname': '',
'verstring': '3.7.10 x32 Build202401231339',
'version': '3.7.10',
'build_date': 202401231339,
'arch': 'x86',
'sysbit': 'x32',
'verflags': '',
'is_enterprise': 0,
'support_i18n': 0,
'support_dingtalk': 1,
'support_lcd': 0,
'bootguide': 'hd'}}
```
### monitor_lanip & monitor_lanipv6
Get the monitor list of lanip (v4) or lanipv6. For v4, use ``ikuai_client.list_monitor_lanip()``. For v6, use ``ikuai_client.list_monitor_lanip(ip_type='v6')`` .
### acl_mac
The access control of device via mac address. The implemented methods include: `add_acl_mac`, `list_acl_mac`, `edit_acl_mac`, `del_acl_mac`, `enable_acl_mac`, `disable_acl_mac`.
### mac_comment
The management of alias of devices, mapping mac addresses. The implemented methods include: `add_mac_comment`, `list_mac_comment`, `edit_mac_comment`, `del_mac_comment`.
### mac_qos
The interface for limiting download/upload speed of devices, mapping mac addresses. The implemented methods include: `add_mac_qos`, `list_mac_qos`, `edit_mac_qos`, `del_mac_qos`, `enable_mac_qos`, `disable_mac_qos`.
### url_black
Blacklisting or whitelisting url for accessing, mapping mac addresses. The implemented methods include: `add_url_black`, `list_url_black`, `edit_url_black`, `del_url_black`, `enable_url_black`, `disable_url_black`.
Raw data
{
"_id": null,
"home_page": "https://github.com/dzhuang/PyIKuaiClient/",
"name": "pyikuai",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "iKuai Router client API",
"author": "Dong Zhuang",
"author_email": "dzhuang.scut@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/27/80/afb99553c4665080ac1ebbd966ff3e9fd62dc254db6cdde6a6d238b816e9/pyikuai-0.4.0.dev0.tar.gz",
"platform": null,
"description": "# PyIKuaiClient\n\nA Python client for interacting with IKuai routers.\n\n## How to install\n\n```bash\npip install pyikuai\n```\n\n## Usage\n\n```python\nfrom pyikuai import IKuaiClient\n\nikuai_client = IKuaiClient(\n url=\"http://192.168.1.1\",\n username=\"your/ikuai/username\",\n password=\"your/ikuai/password\"\n)\n\n```\n\n## Implemented functionality\n\n### mac_group\n\n```python\n\n>>> ikuai_client.list_mac_groups() # get the mac_groups configured\n{'total': 2,\n 'data': [{'id': 1,\n 'comment': '',\n 'group_name': 'IPAD',\n 'addr_pool': '34:b8:ec:42:91:2d'},\n {'id': 2,\n 'comment': 'foo,%20bar',\n 'group_name': 'test',\n 'addr_pool': '43:a9:fc:43:97:3d,43:a9:fc:43:97:3f'}]}\n>>> ikuai_client.del_mac_group(group_id=3) # delete mac_group with id 3\n{'Result': 30000, 'ErrMsg': 'Success'} # succeed even that id does not exists.\n>>> ikuai_client.add_mac_group(\n group_name=\"test2\",\n addr_pools=['43:a9:fc:43:97:3d', '43:a9:fc:43:97:3f'],\n comments=[\"foo2\", \"bar2\"])\n\n{'Result': 30000, 'ErrMsg': 'Success', 'RowId': 3}\n>>> ikuai_client.edit_mac_group( # update mac_group id 3 with new comments\n group_id=3,\n group_name=\"test2\", \n addr_pools=['43:a9:fc:43:97:3d', '43:a9:fc:43:97:3f'],\n comments=[\"foo3\", \"bar3\"])\n\n{'Result': 30000, 'ErrMsg': 'Success'}\n```\n\n### acl_l7\n\nThe functionality related to behavioral control of devices connected, via protocol. \nThe implemented methods include\n`add_acl_l7`, `list_acl_l7`, `edit_acl_l7`, `del_acl_l7`, `disable_acl_l7`, `enable_acl_l7`.\n\n\n### domain_blacklist\n\nThe functionality related to behavioral control of devices connected, via domain blacklist.\nThe implemented methods include\n`add_domain_blacklist`, `list_domain_blacklist`, `edit_domain_blacklist`, `del_domain_blacklist`,\n`disable_domain_blacklist`, `enable_domain_blacklist`\n\n\n### sysstat\n\nGet the system statistics. \n\n```python\n>>> ikuai_client.get_sysstat()\n{'verinfo': {'modelname': '',\n 'verstring': '3.7.10 x32 Build202401231339',\n 'version': '3.7.10',\n 'build_date': 202401231339,\n 'arch': 'x86',\n 'sysbit': 'x32',\n 'verflags': '',\n 'is_enterprise': 0,\n 'support_i18n': 0,\n 'support_dingtalk': 1,\n 'support_lcd': 0,\n 'bootguide': 'hd'},\n 'cpu': ['0.00%', '0.00%'],\n 'memory': {'total': 886264,\n 'available': 618720,\n 'free': 538644,\n 'cached': 45460,\n 'buffers': 69132,\n 'used': '30%'},\n 'stream': {'connect_num': 52,\n 'upload': 821,\n 'download': 432,\n 'total_up': 671137724,\n 'total_down': 4459837833},\n 'cputemp': []}\n>>> ikuai_client.get_sysstat([\"verinfo\"])\n{'verinfo': {'modelname': '',\n 'verstring': '3.7.10 x32 Build202401231339',\n 'version': '3.7.10',\n 'build_date': 202401231339,\n 'arch': 'x86',\n 'sysbit': 'x32',\n 'verflags': '',\n 'is_enterprise': 0,\n 'support_i18n': 0,\n 'support_dingtalk': 1,\n 'support_lcd': 0,\n 'bootguide': 'hd'}}\n```\n\n### monitor_lanip & monitor_lanipv6\n\nGet the monitor list of lanip (v4) or lanipv6. For v4, use ``ikuai_client.list_monitor_lanip()``. For v6, use ``ikuai_client.list_monitor_lanip(ip_type='v6')`` .\n\n\n### acl_mac\n\nThe access control of device via mac address. The implemented methods include: `add_acl_mac`, `list_acl_mac`, `edit_acl_mac`, `del_acl_mac`, `enable_acl_mac`, `disable_acl_mac`.\n\n### mac_comment\n\nThe management of alias of devices, mapping mac addresses. The implemented methods include: `add_mac_comment`, `list_mac_comment`, `edit_mac_comment`, `del_mac_comment`.\n\n### mac_qos\n\nThe interface for limiting download/upload speed of devices, mapping mac addresses. The implemented methods include: `add_mac_qos`, `list_mac_qos`, `edit_mac_qos`, `del_mac_qos`, `enable_mac_qos`, `disable_mac_qos`.\n\n### url_black\n\nBlacklisting or whitelisting url for accessing, mapping mac addresses. The implemented methods include: `add_url_black`, `list_url_black`, `edit_url_black`, `del_url_black`, `enable_url_black`, `disable_url_black`.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python client for interacting with IKuai routers",
"version": "0.4.0.dev0",
"project_urls": {
"Homepage": "https://github.com/dzhuang/PyIKuaiClient/"
},
"split_keywords": [
"ikuai",
"router",
"client",
"api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8b4768e44725a68acaf28025134c27d90a68ab13a6d24865c7cadc7f8925c773",
"md5": "98fe2efc769ced4ba54b5d2f7abdbf95",
"sha256": "500d0a8a8705afccc384650f57b7a44d1b8fca2841b86d8e35afbb5799e7ee60"
},
"downloads": -1,
"filename": "pyikuai-0.4.0.dev0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "98fe2efc769ced4ba54b5d2f7abdbf95",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 9765,
"upload_time": "2024-02-18T17:47:17",
"upload_time_iso_8601": "2024-02-18T17:47:17.324141Z",
"url": "https://files.pythonhosted.org/packages/8b/47/68e44725a68acaf28025134c27d90a68ab13a6d24865c7cadc7f8925c773/pyikuai-0.4.0.dev0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2780afb99553c4665080ac1ebbd966ff3e9fd62dc254db6cdde6a6d238b816e9",
"md5": "c60ca8f87d9095a4e2feff0943570438",
"sha256": "513df5fb117e20e78bef5ba016c836f0c52a75367a954fb6aa0ed8204724bc79"
},
"downloads": -1,
"filename": "pyikuai-0.4.0.dev0.tar.gz",
"has_sig": false,
"md5_digest": "c60ca8f87d9095a4e2feff0943570438",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 10866,
"upload_time": "2024-02-18T17:47:18",
"upload_time_iso_8601": "2024-02-18T17:47:18.612261Z",
"url": "https://files.pythonhosted.org/packages/27/80/afb99553c4665080ac1ebbd966ff3e9fd62dc254db6cdde6a6d238b816e9/pyikuai-0.4.0.dev0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-18 17:47:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dzhuang",
"github_project": "PyIKuaiClient",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "pyikuai"
}