您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
自动登录DISCUZ发帖的实现方法示例
怀蕊2025-06-27Discuz教程已有人查阅
导读有点无聊的东西,不是通用的,不过RD提供了我们论坛用的discuz的hashform的计算代码,也许通用的DISCUZ灌水机器人是我这种菜鸟也能搞出来的。
有点无聊的东西,不是通用的,不过RD提供了我们论坛用的discuz的hashform的计算代码,也许通用的DISCUZ灌水机器人是我这种菜鸟也能搞出来的。
关于代码,没有什么技术含量,先用一个叫Ethereal的软件抓到提交的值,然后用.NET中对应的库即可完成。下面是主要的类:
关于代码,没有什么技术含量,先用一个叫Ethereal的软件抓到提交的值,然后用.NET中对应的库即可完成。下面是主要的类:
class Robot
{
/// attributes
// cookies
private CookieCollection CkCollection = null;
// request and response
private HttpWebRequest SparkRequest = null;
private HttpWebResponse SparkResponse = null;
// some url
private string LoginUrl = null;
private string ReplyUrl = null;
// constructer
public Robot()
{
CkCollection = new CookieCollection();
}
// logining
public string Login(string url, string usr,string pass)
{
string Return = null;
this.LoginUrl = url;
// may be I should add a functin for create string
string loginstr = "formhash=3bd8bc0a&referer=index.php&loginmode=&styleid=&cookietime=2592000&loginfield=username&username=" + usr;
loginstr += "&password=" + pass;
loginstr += "&questionid=0&answer=&loginsubmit=提 交";
loginstr = EncodePost(loginstr);
byte[] replybyte = Encoding.UTF8.GetBytes(loginstr);
try
{
CookieContainer sparkc = new CookieContainer();
SparkRequest = (HttpWebRequest)WebRequest.Create(url);
SparkRequest.CookieContainer = sparkc;
SparkRequest.ContentType = "application/x- -form-urlencoded";
SparkRequest.Method = "POST";
SparkRequest.ContentLength = replybyte.Length;
Stream newStream = SparkRequest.GetRequestStream();
newStream.Write(replybyte, 0, replybyte.Length);
newStream.Close();
SparkResponse = (HttpWebResponse)SparkRequest.GetResponse();
Stream dataStream = SparkResponse.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("gb2312"));
Return = reader.ReadToEnd();
// check cookie
foreach (Cookie temp in SparkResponse.Cookies)
{
if (temp.Domain != "spark.cjlu.edu.cn")
temp.Domain = "spark.cjlu.edu.cn";
}
CkCollection = SparkResponse.Cookies;
}
catch
{
return null;
}
return Return;
}
// overload
/*
public bool Login(string usr, string pass)
{
;
}*/
// reply……
public string Reply(string url,string formhash,string title,string content)
{
SparkRequest = (HttpWebRequest)WebRequest.Create(");
SparkRequest.ContentType = "application/x- -form-urlencoded";
SparkRequest.Method = "POST";
//SparkRequest.Referer = "";
SparkRequest.KeepAlive = true;
SparkRequest.AllowWriteStreamBuffering = false;
// set cookie
CookieContainer cookieCon = new CookieContainer();
SparkRequest.CookieContainer = cookieCon;
SparkRequest.CookieContainer.Add(CkCollection);
// get post value
string reply = EncodePost("formhash=" + formhash + "&subject=&usesig=1&message=" + content);
byte[] replybyte = Encoding.UTF8.GetBytes(reply);
SparkRequest.ContentLength = replybyte.Length;
Stream newStream = SparkRequest.GetRequestStream();
newStream.Write(replybyte, 0, replybyte.Length);
newStream.Close();
// get response
SparkResponse = (HttpWebResponse)SparkRequest.GetResponse();
Stream dataStream = SparkResponse.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("gb2312"));
string tt = reader.ReadToEnd();
reader.Close();
dataStream.Close();
SparkResponse.Close();
return tt;
}
// encode the post string
private string EncodePost(string input)
{
string output = null;
Char[] reserved = { '?', '=', '&' };
if (input != null)
{
int i = 0, j;
while (i < input.Length)
{
j = input.IndexOfAny(reserved, i);
if (j == -1)
{
output = output + HttpUtility.UrlEncode(input.Substring(i, input.Length - i), System.Text.Encoding.GetEncoding("gb2312"));
break;
}
string tt = HttpUtility.UrlEncode(input.Substring(i, j - i), System.Text.Encoding.GetEncoding("gb2312"));
output += tt;
output += input.Substring(j, 1);
i = j + 1;
}
return output;
}
else
return null;
}
}
本文标签:
很赞哦! ()
上一篇:Discuz代码大全
图文教程
discuz回贴通知插件实现页面嵌入点
1、如何保证主题被回复时业务代码被执行。 2、获得主题,主题发布者,贴子等信息。3、discuz发送email邮件。
Discuz! 7.1 & 7.2远程代码执行漏洞分析
Discuz!新版本7.1与7.2版本中的showmessage函数中eval中执行的参数未初始化,可以任意提交,从而可以执行任意PHP命令。
Discuz!X3.1数据库的操作介绍
MVC全名是Model-View-Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计思想。使用一种业务逻辑,数据和显示分离的方法组织代码,实现代码复用的较大化
Discuz搭建付费阅读下载功能的方法
搭建discuz的付费阅读和下载功能可以通过以下步骤实现:1.安装并启用“discuz!付费阅读插件”,在后台设置帖子为付费阅读。2.安装并启用“discuz!付费下载插件”,在后台设置附件为付费下载。
相关源码
-
帝国CMS7.5手游资讯下载综合门户免费网站模板本模板基于帝国CMS7.5内核开发,为手游打造的综合门户网站解决方案。模板设计充分考虑了手业的特性,包含游戏资讯发布、手游下载、礼包发放、开测信息等核心功能模块,满足手游门户网站的各项业务需求。查看源码 -
(PC+WAP)红色家装设计智能家居家具建材pbootcms网站源码下载本模板基于PbootCMS系统开发,为智能家居、家装设计及家具建材行业设计。采用现代化布局风格,突出家居设计行业特色,适合展示各类家居产品、设计方案和建材信息。查看源码 -
(自适应响应式)高端家用办公家具家居桌椅pbootcms模板下载为办公家具企业设计的响应式网站模板,涵盖产品展示、案例呈现、企业介绍等核心模块。通过可视化后台可快速发布实木桌椅、系统家具、办公屏风等产品信息,帮助客户直观了解材质参数与空间搭配方案。查看源码 -
帝国cms7.5游戏门户H5小游戏网站模板源码免费下载基于帝国CMS7.5开发的H5游戏门户模板,为在线游戏平台设计。支持PC端与移动端同步生成,打造完整的游戏娱乐体验平台。查看源码 -
(自适应)橙色家政服务清洁保洁服务pbootcms网站模板源码下载模板核心价值:基于PbootCMS内核开发的家政服务类网站模板,通过模块化设计展现服务项目、团队风采、服务案例等核心板块,突出时效预约、服务标准化展示等家政行业特性。查看源码 -
(自适应)英文外贸电子设备网站模板三级子目录基于PbootCMS内核开发的响应式英文网站模板,为外贸企业打造,支持多行业快速适配。通过简洁高效的代码架构,帮助企业低成本构建专业海外形象,实现更好客户触达与订单转化。查看源码
| 分享笔记 (共有 篇笔记) |
