Board logo

标题: [其他] 求助,批处理无法自动登录Discuz论坛。 [打印本页]

作者: 拿铁不加糖    时间: 2012-7-31 14:00     标题: 求助,批处理无法自动登录Discuz论坛。

本帖最后由 pcl_test 于 2017-5-27 07:08 编辑

问题应该出在这一段,貌似无法获取formhash,求大侠相助。
  1. :getformhash
  2. for /f tokens^=8^ delims^=^;^" %%i in ('curl -c reply.txt -d "loginfield=username&username=%use%&password=%pwd%&questionid=0&answer=&cookietime=315360000&loginmode=&styleid=&loginsubmit=提  交" "http://www.zxxy8.com/member.php?mod=logging&action=login&"^|findstr "logout"') do set formhash=%%i
  3. cls
  4. echo 登陆完成(%formhash%),按任意键开始发帖 ...
复制代码

作者: CrLf    时间: 2012-7-31 16:48

Discuz! X2.5 使用随机表单id,前两天刚好也碰到这个问题
作者: 乱码    时间: 2012-7-31 16:52

没有通用的DZ登录,很多论坛有可能自己修改了部分验证,有些甚至加上密码登录前的md5

VBS脚本之Discuz X2 论坛登录脚本 任何论坛通用
http://qqcik.5d6d.net/thread-217-1-2.html

VBS脚本之论坛刷帖
http://qqcik.5d6d.net/thread-146-1-2.html

希望这两篇文章对你有帮助、、
第一篇 任何论坛通用 是不可能的,只是为了吸引眼球罢了、
第二篇 针对 Discuz 7.0 的
作者: CrLf    时间: 2012-7-31 18:53

回复 3# 乱码


    话说我是用遍历的笨办法登陆的...
  1. username = "test"   '用户名
  2. password = "pass123"  '密码
  3. loginquestionid = "2" '安全提问编号
  4. loginanswer = "123456" '答案
  5. coockietime = False    '是否自动登录
  6. Set ie = CreateObject("InternetExplorer.Application")
  7. ie.Navigate "http://www.zxxy8.com/member.php?mod=logging&action=login"
  8. ie.Visible = True
  9. Do Until ie.ReadyState=4
  10. Loop
  11. With ie.Document
  12. For Each i In .all
  13. Select Case 1
  14. Case InStr(LCase(i.id),"username_")
  15. .all(i.id).value = username
  16. Case InStr(LCase(i.id),"password3_")
  17. .all(i.id).value = password
  18. Case InStr(LCase(i.id),"loginquestionid_")
  19. .all(i.id).value = loginquestionid
  20. Case InStr(LCase(i.id),"loginanswer_")
  21. If InStr(LCase(i.id),"_row_") Then
  22. .all(i.id).style.display = ""
  23. Else
  24. .all(i.id).value = loginanswer
  25. End If
  26. Case InStr(LCase(i.id),"cookietime_")
  27. If cookietime Then .all(i.id).click
  28. End Select
  29. Next
  30. .all.loginsubmit.click
  31. End With
复制代码

作者: 拿铁不加糖    时间: 2012-7-31 18:56

本帖最后由 拿铁不加糖 于 2012-7-31 18:58 编辑

回复 2# CrLf

谢谢了,我试一试。
作者: aa65535    时间: 2012-7-31 19:37

是这样的吧,
  1. :login
  2. set /p use=用户名:
  3. if "%use%"=="" goto login
  4. set /p pwd=密码:
  5. if "%pwd%"=="" goto login
  6. curl -c cookie.txt -d "loginfield=username&username=%use%&password=%pwd%&questionid=0&answer=&cookietime=2592000&loginsubmit=true" "http://www.zxxy8.com/member.php?mod=logging&action=login&loginsubmit=yes&inajax=1">nul
  7. for /f tokens^=6^ delims^=^;^" %%i in ('curl -b cookie.txt "http://www.zxxy8.com/home.php?mod=space&do=pm"^|findstr "logout"') do set formhash=%%i
  8. cls
  9. echo 登陆完成(%formhash%),按任意键开始发帖 ...
  10. @pause >nul
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2