栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

curl 模拟登陆后携带 Cookie 进行 POST 提交报文

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

curl 模拟登陆后携带 Cookie 进行 POST 提交报文

场景

某路由器设备,里面有一个功能,只能进行 “手工同步” ,但是我需要它自动进行 “自动的不断同步”。所以我写了一个脚本,先模拟登陆,然后将获得的cookie携带模拟这个手工同步请求。最后再将这个脚本配置到定时任务中每隔30秒钟执行一次。

脚本示例
#!/bin/bash
# 登陆账号
username=admin
# 登陆密码
password=1234567890000000

# 下面的规则你需要修改(我这个登录是对密码进行md5的,所以进行了md5处理)
password_md5=$(echo -n $password | md5sum | cut -d ' ' -f 1)
password_base64=$(echo -n "salt_11${password}" | base64)
#echo $password_md5
#echo $password_base64

# 登录的POST报文体
login_body='{"username":"'${username}'","passwd":"'${password_md5}'","pass":"'${password_base64}'","remember_password":""}'

# curl 提交登录请求,并将 cookie 存储到文件
curl -X POST -d $login_body "http://192.168.100.2/Action/login" -c ck.txt

# 构造业务请求的报文体
sync_body='{"func_name":"vrrp_config","action":"websync","param":{"modules":"dhcp_server,dhcp_lease,dns,dns_replace,ipgroup,macgroup,wifi,static_rt,static_rt_table,vlan,pptp_client,l2tp_client,openvpn-client,ipsec-vpn,upnpd,upnpd_leases,snat,dnat,netmap,ipv6,dprotos,dprotos_l7,simple_qos,mac_qos,lb_pcc,stream_layer7,stream_ipport,stream_domain,stream_updown,ac_status,ac_server,ac_group,ac_upgrade,wls_black,ac_online_clt,pppoe_server,pptp_server,l2tp_server,openvpn-server,ppp_package,pppuser,ppp_passwd,ppp_paylog,coupon,notice_temp,notice_cycle,notice_remind,notice_expires,audit,audit_white_ip,audit_white_mac,mac_comment,audit_url_log,audit_im_log,audit_terminal_log,acl_mac,url_black,domain_blacklist,domain_group,url_redirect,url_keywords,url_replace,acl_l7,acl_l2route,acl_qq,acl,arp,conn_limit,advanced"}}'

# 携带登录的 cookie 提交请求
curl -X POST -b ck.txt -d $sync_body "http://192.168.100.2/Action/call"

这个脚本如果你是在设备本身上定时执行的,建议把IP地址 192.168.100.2 修改为 127.0.0.1,如果是在其他设备执行的,则需要像示例中那样明确具体的 IP 地址。


(END)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312580.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号