短信对于现在的商业服务网站来说是一个重要的资源,而监控短信资源是更好的把控短信使用状态,对于及时充值续费以及观测日常消耗频率有重要作用。

早先,采用浏览器访问并将cookie写入到监控脚本的方式实现。但是,估计是官方发现了这一问题,及时进行了修补,避免了cookie不失效的问题。如此一来,对于监控的数据获取带来了麻烦。

经过研究发现,可以增加使用curl命令自动获取cookie的办法。

对于cookie的获取,通过抓包获取浏览器post数据样式。
2024-01-15T06:31:53.png

进一步分析后,找到post数据
2024-01-15T06:32:18.png

使用curl命令获取cookie并写到本地

curl -c cookie.txt -X POST -d "j_username=xxx&j_password=xxx" http://xxx:8080/WebSMP/j_spring_security_check

修改脚本,使用curl命令获取状态时,使用上一步保存的cookie信息。
2024-01-15T06:32:56.png

手动执行拿到了数据。
2024-01-15T06:33:31.png

整个脚本内容如下:

#!/bin/bash

cd /opt/categraf/conf/input.exec
curl -c cookie.txt -X POST -d "j_username=xxx&j_password=xxx" http://xxx:8080/WebSMP/j_spring_security_check 2>/dev/null >> log.txt

value=`curl 'http://xxx:8080/WebSMP/page/account' \
  -X 'POST' \
  -H 'Accept: */*' \
  -H 'Accept-Language: zh,en-US;q=0.9,en;q=0.8' \
  -H 'Connection: keep-alive' \
  -H 'Content-Length: 0' \
  -H 'Origin: http://web.jianzhou.sh.cn:8080' \
  -H 'Referer: http://web.jianzhou.sh.cn:8080/WebSMP/page/account.jsp' \
  -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 OPR/100.0.0.0' \
  -H 'X-Requested-With: XMLHttpRequest' \
  -b cookie.txt \
  --compressed \
  --insecure 2>/dev/null`

echo "sms_3rd_account_left{ userDefineService_project=\"zcyun\", userDefineService_name=\"sms_3rd_account_left\"} $value"

将该脚本放到/opt/categraf/conf/input.exec/下面。

最后修改:2024 年 05 月 11 日
如果觉得我的文章对你有用,请随意赞赏