用脚本控制普通路由器:curl

Which can control your tp-link router automatically.

适用于无人值守,管理不便但已知路由器管理权限的情况,实现由远程主机对路由器(普联、水星等)配置进行修改(打开端口映射,静态地址等)。
1.获取GET请求:

Capture
连接路由器,进页面,点“保存”,GET请求暴露无遗。
Copy as cURL(bash):

curl 'http://192.168.1.1/userRpm/WlanNetworkRpm.htm?ssid1=guanlixi&wlMode=2&channel=0&mode=5&chanWidth=2&ap=1&broadcast=2&brlssid=&brlbssid=&keytype=1&wepindex=1&authtype=1&keytext=&Save=%B1%A3+%B4%E6' -H 'Authorization: Basic YWRtaW46YWRtaW4=' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: zh-CN,zh;q=0.8' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Referer: http://192.168.1.1/userRpm/WlanNetworkRpm.htm' -H 'Connection: keep-alive' --compressed

(之前不知道Chrome有这么一个功能Copy as cURL,当然,也可以直接在右下角抄些头部信息来写脚本。)
整理后:

#!/bin/bash

# WiFi SW
# Test device: TP-Link 740
# Client: Ubuntu 12.04
# Browser: Mozilla firefox

exec(){
curl    -H "Host: 192.168.1.1" \
        -H "Authorization: Basic%20YWRtaW46MTIzNDU2Cg==" \
        -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
        -H "Accept-Language: en-US,en;q=0.5" \
        -H "Accept-Encoding: gzip, deflate" \
        -A "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0" \
        -e "http://192.168.1.1/userRpm/WlanNetworkRpm.htm" \
        "http://192.169.1.1/userRpm/WlanNetworkRpm.htm?ssid1=Hope_2&wlMode=2&channel=0&mode=5&chanWidth=2$1&broadcast=2&brlssid=&brlbssid=&detctwds=1&keytype=1&wepindex=1&keytext=&Save=%B1%A3+%B4%E6"
        >> /dev/null
}

AP1="&ap=1"
read -p "Wifi enable?[y/n]" SW
case $SW in
        y)exec $AP1 ;;&
        n)exec      ;;&
esac
2.curl参数

-A/–user-agent 设置用户代理(客户端信息)
-H/–header 自定义头信息(header)
-e/–referer 来源网址

3.关于登录验证

用户名、密码包含于每次请求的头部参数中并进行了base64加密:
Authorization:Basic%20YWRtaW46MTIzNDU2Cg==
其中,%20 代表一个空格,从后面的字符串开始解:

pi@RAS:~/tplink $ echo "YWRtaW46MTIzNDU2Cg==" | base64 -d
admin:123456
#用户名:密码 
4.关于中文乱码

加入 iconv -f gb2312 -t utf-8iconv -f gb2312 -t utf-8

pi@RAS:~/tplink $ ./status_virtual_server | iconv -f gb2312 -t utf-8iconv -f gb2312 -t utf-8
5.拓展
#!/bin/bash

# 12306 Ticket

curl    -H "Host: kyfw.12306.cn" \
        -H "Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3" \
        -H "Accept-Encoding: gzip, deflate" \
        -H "Cache-Control: no-cache" \
        -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0" \
        -e "https://kyfw.12306.cn/otn/lcxxcx/init" \
        -k "https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-09-13&from_station=WHN&to_station=OTQ" \
        | jq '.'
6.工具集

站长工具之URL编码解码
站长工具之Base64加密解密

鸣谢

curl命令伪装http_referer和user-agent访问

curl为何不生效呢?

php实现登录tplink WR882N获取IP和重启

几种在Linux下查询外网IP的办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值