ikuai路由器通过curl模拟功能操作

2023-10-19 20:04

本文主要是介绍ikuai路由器通过curl模拟功能操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

模拟登录

通过调试进行分析ikuai登录流程,并进行模拟登录

  • ikuai_ip  该参数为ikuai路由器的ip
  • username  登录的用户
  • password  登录密码
#!/bin/bash
#
#
ikuai_ip='10.66.0.1'
username='admin'
password='adminpwd..'
cookie_name='ikuai_cookie.txt'
useragent="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.60"
contenttype="Content-Type: application/json;charset=UTF-8"# 1密码加密,并模拟登录,获取cookie
ikuai_passwd=`echo -n "${password}" | md5sum |awk -F " " '{print $1}'`
ikuai_pass=`echo 'salt_11'${password} | base64`curl -k \
-H '$useragent' \
-H '$contenttype' \
-d '{"username":"'"$username"'","passwd":"'"$ikuai_passwd"'","pass":"'"$ikuai_pass"'","remember_password":null}' \
-c "$cookie_name" \
https://$ikuai_ip/Action/login

登录成功之后,会拿到返回信息,如下

{"Result":10000,"ErrMsg":"Success"}

 设置修改dns解析

 通过浏览器调试,拿到数据

发送具体的数据,可以通过右键,获取到bash的命令

 

内容大概如下:

curl 'http://10.66.0.1/Action/call' \-H 'Accept: application/json, text/plain, */*' \-H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \-H 'Cache-Control: no-cache' \-H 'Connection: keep-alive' \-H 'Content-Type: application/json;charset=UTF-8' \-H 'Cookie: sess_key=fd3afac89381760bef94e60fcf3118cc; username=gmik.admin; login=1' \-H 'Origin: http://10.66.0.1' \-H 'Pragma: no-cache' \-H 'Referer: http://10.66.0.1/' \-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.60' \--data-raw '{"func_name":"dns","action":"edit","param":{"domain":"hello.nineven.com","dns_addr":"10.66.8.111","is_ipv6":0,"enabled":"yes","src_addr":"","comment":"","id":4}}' \--compressed \--insecure

 把要拼接的数据准备好,也就是  --data-raw 对应的数据

curl -k \
-H '$useragent' \
-H '$contenttype' \
-d '{"domain":"hello.nineven.com","dns_addr":"10.66.8.111","is_ipv6":0,"enabled":"yes","src_addr":"","comment":"","id":4}}' \
-b "$cookie_name" \
http://$ikuai_ip/Action/call

通过拼接,就可以正常发送配置请求,返回结果如下:

{"Result":30000,"ErrMsg":"Success"}

比对

通过登录ikuai管理后台,查看刚才的dns已经成功修改,说明脚本已经成功执行

这篇关于ikuai路由器通过curl模拟功能操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/242064

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络