找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28444|回复: 5

[其他] 求助,批处理无法自动登录Discuz论坛。

[复制链接]
发表于 2012-7-31 14:00:53 | 显示全部楼层 |阅读模式
本帖最后由 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%),按任意键开始发帖 ...
复制代码
发表于 2012-7-31 16:48:19 | 显示全部楼层
Discuz! X2.5 使用随机表单id,前两天刚好也碰到这个问题
发表于 2012-7-31 16:52:54 | 显示全部楼层
没有通用的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 的
发表于 2012-7-31 18:53:56 | 显示全部楼层
回复 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.        
  31.         .all.loginsubmit.click
  32.        
  33. End With
复制代码
 楼主| 发表于 2012-7-31 18:56:01 | 显示全部楼层
本帖最后由 拿铁不加糖 于 2012-7-31 18:58 编辑

回复 2# CrLf

谢谢了,我试一试。
发表于 2012-7-31 19:37:49 | 显示全部楼层
是这样的吧,
  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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 03:57 , Processed in 0.019357 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表