我在这里的第一篇文章,所以如果在其他地方回答这个话题,请告诉我。 我找到了类似的帖子,但没有设法使用它们来解决我的问题。
背景: 我使用IPTV服务提供商,可以在运行KODI的RPi上观看电视频道。 因此,该提供商促进IPTV简单客户端的使用以及一些播放列表URL。 使思考更短,此播放列表仅为我的帐户生成,并且绑定到我的公共IP地址。 问题,我没有,并希望修复公共IP地址,所以每次我的ISP重置我的DSL连接时,我必须登录IPTV提供商页面并按下所谓的“更新IP”按钮。那很烦人! 我希望使用bash脚本自动执行该操作,该脚本将由我的rpi上定期运行的动态DNS服务更新触发。
到目前为止我管理的内容: - 使用带有CURL的bash命令登录网页并将cookie保存到文本文件中。 有了这个:
curl -c cookie.txt -d "user=mymail@mail.com" -d "pass=mypass" http://www.spicetvbox.ro/user/login
然后我尝试了几种方法来按下“更新IP”按钮:
curl -b cookie.txt -d "press=UPDATEIP" http://www.spicetvbox.ro/user/xbmc
curl -b cookie.txt -d "button=Upfate IP" http://www.spicetvbox.ro/user/xbmc
curl -b cookie.txt -X POST http://www.spicetvbox.ro/user/xbmc
并分配其他命令。 我试图使用firebug来检查按钮元素.. 这是来自firebug的html:
<form id="formXBUpd89942" class="jqValidation" role="form" novalidate="novalidate" action="http://www.spicetvbox.ro/user/xbmc" method="post">
<input type="hidden" value="UPDATEIP" name="run">
<input type="hidden" value="89942" name="id">
<button class="btn btn-info btn-xs" type="submit">
<i class="fa fa-refresh"></i>
Update IP
</button>
请给我一些关于如何从CURL按下该按钮的建议。
答案 0 :(得分:0)
您不需要单击按钮 - 您需要提交表单,或者至少达到相同的效果。
使用cURL对http://www.spicetvbox.ro/user/xbmc
执行HTTP POST - 类似这样的事情:
curl -b cookie.txt --data "run=UPDATEIP&id=89942" http://www.spicetvbox.ro/user/xbmc
此数据取自表单字段的值,而URL取自表单元素的action
属性。当指定--data
(相当于-d
)时,cURL会执行POST。