免费资源网 – https://freexyz.cn/
由于领取免费EUserv在手需要不定期进行续费,故自己弄了个shell自动续费脚本。
使用脚本需apt安装jq及curl,需支持IPV4访问。
#!/bin/bash # EUserv免费服务器自动续费 By:admin@ym68.cc # Version: 0.0.2 # Date: 2021-06-16 # 用户邮箱 User_EmAIl=“” # 用户密码 User_Pawd=“” Login_Cookies() { curl -s -A “Mozilla/5.0 (WindowsNT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36″ -H “origin: https://www.euserv.com” “$@“ } # 钉钉授权ID Ding_Access_Token= DingDing_Content(){ if [[ “${Current_Currency_Num_Rate_D}“ =~ e ]];thenPost_Code=`curl -s -H“Content-Type:application/json” -d “{“msgtype”:”text”,”text”:{“content”:”${Post_Content}“},”at”:{“atMobiles”:[“${Mobile}“],”isAtAll”:false}}”https://oapi.dingtalk.com/robot/send?access_token=${Ding_Access_Token} |jq -r .errmsg` else Post_Code=`curl -s -H “Content-Type:application/json” -d “{“msgtype”:”markdown”,”markdown”:{“title”:”${Post_Title}“,”text”:”${Post_Content}“}}” https://oapi.dingtalk.com/robot/send?access_token=${Ding_Access_Token}|jq -r .errmsg`fi if [ ! “${Post_Code}“ = ok ];then echo “提交失败请检查!:${Post_Code}“ fi } Error_Info(){ Post_Title=“EUserv自动续期失败” Post_Content=“EUserv ${Get_Contract_Id}nn[主机名称] ${Get_Servername_Info}nn[IPv6地址] ${Get_Ipv6_Address_Info}nn[自动续费] 失败 nn${1}“ } Index_Url=https://support.euserv.com/index.iphp # 登录Euserv_Login=`Login_Cookies -d“email=${User_Email}&password=${User_Pawd}&form_selected_language=en&Submit=Login&subaction=login” “${Index_Url}“` # Sess_Id Euserv_Sess_Id=`echo “${Euserv_Login}“| awk -F“” /params[[:space:]]=[[:space:]].sess_id/ {print $2}` # 获取首页信息 Get_Index_Info=`Login_Cookies “${Index_Url}?${Euserv_Sess_Id}“` # 获取IPv6地址 Get_Ipv6_Address_Info=`echo “${Get_Index_Info}“ |grep IPv6: |sed -ne s/</n/g -e s/>/n/gp |awk /IPv6/ {print $2}` # 获取主机名 Get_Servername_Info=`echo “${Get_Index_Info}“|grep Servername: |sed -nes/</n/g -e s/>/n/gp |awk /Servername/ {print $2}` # 获取最早续期时间 Get_extension_Time_Info=`echo “${Get_Index_Info}“ |sed -ne s/>/n/g -e s/</n/gp |awk /Contract extension possible/ {print $5}` if [ ! -z “${Get_extension_Time_Info}“ ];then # 请求头部 Post_Title=“EUserv暂无需续期” # 请求内容 Post_Content=“EUserv ${Get_Contract_Id}nn[主机名称] ${Get_Servername_Info}nn[IPv6地址] ${Get_Ipv6_Address_Info}nn[最早延长] ${Get_extension_Time_Info}nn[自动续费] 暂停” else # 合同ID Get_Contract_Id=`echo “${Get_Index_Info}“ |sed -n s/.*>([0-9]{5,9}) vServer VS2-free.*/1/p` Login_Cookies -d “Submit=Extend+contract&${Euserv_Sess_Id}&ord_no=${Get_Contract_Id}&subaction=choose_order&show_contract_extension=1&choose_order_subaction=show_contract_details” “${Index_Url}“ &> /dev/null Login_Cookies -v -d “${Euserv_Sess_Id}&subaction=kc2_customer_contract_details_get_change_plan_dialog&ord_id=${Get_Contract_Id}&show_manual_extension_if_available=1″ “${Index_Url}“ &> /dev/null Login_Cookies -d “${Euserv_Sess_Id}&subaction=show_kc2_security_password_dialog&prefix=kc2_customer_contract_details_extend_contract_” “${Index_Url}“ &> /dev/null # 获取密码验证信息 Get_Password_Token_Info=`Login_Cookies -d “${Euserv_Sess_Id}&subaction=kc2_security_password_get_token&prefix=kc2_customer_contract_details_extend_contract_&password=${User_Pawd}“ “${Index_Url}“ ` # 获取密码验证结果状态 Get_Password_Token_Info_Status=`echo “${Get_Password_Token_Info}“|jq -r.rs` if [ “${Get_Password_Token_Info_Status}“ = success ];then # 获取验证Token_Id Get_Password_Token_Id=`echo “${Get_Password_Token_Info}“ |jq -r .token.value` # 获取续约时间 Get_Extended_Time=`Login_Cookies -d “${Euserv_Sess_Id}&subaction=kc2_customer_contract_details_get_extend_contract_confirmation_dialog&token=${Get_Password_Token_Id}“ “${Index_Url}“ |jq -r .html.value |sed -ne s/>/n/g -e s/</n/gp |awk /selected/ {print $9}` Get_Extend_Contract_Info=`Login_Cookies -d “${Euserv_Sess_Id}&ord_id=${Get_Contract_Id}&subaction=kc2_customer_contract_details_extend_contract_term&token=${Get_Password_Token_Id}“ “${Index_Url}“` if [ ! -z “${Get_Extend_Contract_Info/.}“ ];then # 请求头部 Post_Title=“EUserv续期至${Get_Extended_Time/.}“ # 请求内容 Post_Content=“EUserv ${Get_Contract_Id}nn[主机名称] ${Get_Servername_Info}nn[IPv6地址] ${Get_Ipv6_Address_Info}nn[到期时间] ${Get_Extended_Time/.}nn[自动续费] 成功” else Error_Info “${Get_Extend_Contract_Info}“ fi else Error_Info “${Get_Password_Token_Info}“ fi fi DingDing_Content Crontab配置由于该脚本还在完善阶段,最后无异常后进行更新。
免费资源网 – https://freexyz.cn/
© 版权声明
THE END
暂无评论内容