`
hereson
  • 浏览: 1449925 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

BBS注册机(vb script, telnet, sterm)

    博客分类:
  • vbs
阅读更多

#include "lib.vbs"

Const nTimeout = 3  'in second

Const NewSucceed = 0
Const NewFaild = 1
Const LimitedNew = 2
Const IDExist = 3

Const NickLen = 38
Const IDLenMin = 2
Const IDLenMax = 12

WantedIdFile = "id_wanted.txt"
DoneIdFile = "id_done.txt"

'Information used fro registration
Const strPassWord = "!@#$%^"
Const strNickName = "GRE Word List"
Const strRealName = "我爱背单词"
Const strDepartment = "浙江大学计算机学院"
Const strAddress = "浙江大学玉泉校区30舍"
Const strGrade = "2001"
Const strPhone = "87931624"

'Option Explicit
Main
MsgBox ("Script End")


Sub Main()

 'Dim bConnect, nTime, nScreenHeight, strScreenLine, nDelay
 
 Dim fsoWanted, fsoDone, tsWanted, tsDone
 Dim strLine, strID, strNick
 Dim pos

    Dim NewRegistResult

 Set fsoWanted = CreateObject("Scripting.FileSystemObject")
 Set fsoDone = CreateObject("Scripting.FileSystemObject")
 Set tsWanted = fsoWanted.OpenTextFile(WantedIdFile, ForReading)
 Set tsDone = fsoDone.OpenTextFile(DoneIdFile, ForAppending, True)

 Do While (Not tsWanted.AtEndOfStream)
        strLine = tsWanted.ReadLine
        pos = InStr(strLine, " ")
        strID = Left(strLine, pos-1)
        strNick = Mid(strLine, pos+1, NickLen)
        strID = TrimAll(strID)

        If (strNick = "") Then
            strNick = strNickName
        End If

        If (Len(strID) >= IDLenMin And Len(strID) <= IDLenMax) Then    'lenght of ID must in [2, 12]
            ReconnectHost()
            NewRegistResult = NewAndRegistrID(strID, strNick)
            If (NewRegistResult = NewSucceed) Then
                tsDone.WriteLine(strID)                     '记录注册成功的ID
            ElseIf (NewRegistResult = IDExist) Then
                tsDone.WriteLine("# "+strID+" "+strNick)    '记录冲突的ID
            ElseIf (NewRegistResult = NewFaild) Then
                tsDone.WriteLine("@ "+strID+" "+strNick)    '记录注册失败的ID
            ElseIf (NewRegistResult = LimitedNew) Then
                tsDone.WriteLine("$已经到达每日注册上限")   '不能再注册了
                STermScript.Disconnect()
                Exit Do
            End If
            STermScript.Disconnect()
        Else
            tsDone.WriteLine("& "+strID+" "+strNick)    '记录长度出错的ID
        End If

        StermScript.Delay(500)    '延时
    Loop
 

 tsWanted.Close
 tsDone.Close
 
End Sub


'************************************************************
'* Function: NewAndRegistrID(ByRef strIDWanted)              *
'* Return Value:                                            *
'* 新建一个帐号                                             *
'************************************************************
Function NewAndRegistrID(ByRef strIDWanted, ByRef strNick)

'Return Value:
'Const NewSucceed = 0
'Const NewFaild = 1
'Const LimitedNew = 2
'Const IDExist = 3

    Dim nScrH, strLine, strLeft

    '新建一个帐号
 If (Not WaitUntil("请输入帐号", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData("new" + Chr(13)) '发送new
 End If

    '您今天不能再申请新帐号了
    If (InStr(STermScript.GetBuffer(STermScript.GetCursorY()), "不能再申请") > 0) Then
        NewAndRegistrID = LimitedNew
        Exit Function
    End If

 If (Not WaitUntil("请输入帐号名称", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData(strIDWanted + Chr(13)) '输入要新建的ID
 End If


    StermScript.Delay(500) '延时,等待ID冲突判断

    '此帐号已经有人使用
    If (InStr(STermScript.GetBuffer(STermScript.GetCursorY()-1), "已经") > 0) Then
        NewAndRegistrID = IDExist
        Exit Function
    End If


 If (Not WaitUntil("请设定您的密码", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData(strPassWord + Chr(13)) '输入密码
 End If

 If (Not WaitUntil("请再输入一次你的密码", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData(strPassWord + Chr(13)) '再次输入密码
 End If


 '跳过欢迎屏幕
    Do
        STermScript.SendData(goDown)
        'StermScript.Delay(100)
    Loop Until (InStr(STermScript.GetBuffer(STermScript.GetCursorY()), "请输入您的昵称") > 0) '调到输入昵称的那行

    StermScript.SendData(strNick + Chr(13)) '输入昵称
    StermScript.SendData(strRealName + Chr(13)) '输入真实姓名


 If (Not WaitUntil("您确定要填写注册单吗", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData("Y" + Chr(13)) '再次输入密码
 End If

    StermScript.SendData(strRealName + Chr(13))     '真实姓名: 马甲
    StermScript.SendData(strDepartment + Chr(13))   '学校院系: 浙江大学计算机学院
    StermScript.SendData(strAddress + Chr(13))  '详细住址: 浙江大学玉泉校区30舍
    StermScript.SendData(strGrade + Chr(13))    '年级(如1999): 2001
    StermScript.SendData(strPhone + Chr(13))    '联络电话: 87931624

    '以上资料是否正确, 按 Q 放弃注册 (Y/N/Quit)? [N]:
 If (Not WaitUntil("以上资料是否正确", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData("Y" + Chr(13)) '再次输入密码
 End If

 NewAndRegistrID = NewSucceed
 
End Function

分享到:
评论

相关推荐

    STerm bbs远程登陆软件

    (Smart Terminal)是一款针对国内BBS特点设计的能在各Windows平台下运行的专用远程登录软件(也可以作为 普通Telnet客户软件,用于任何Telnet站点的登录)。它在运行中对用户和服务器之间的信息进行了分析,知道用户在 ...

    Telnet软件STerm

    她除了具有一般Telnet工具的功能,还具有以下特点: 远程登陆工具条 对BBS的鼠标支持 浮动输入 复制粘贴屏幕文字矩形区域选择 代颜色编码复制 防止发呆功能 历史消息纪录 历史屏幕 用户自定义按键 支持socks proxy ...

    sterm,telnet

    标题中的"sterm,telnet"指的是一个与远程终端连接相关的工具,可能是一个软件或服务,它集成了sterm(可能是一种终端模拟器)和telnet协议。sterm可能是“Simple Terminal”或类似的简写,它提供了一个用户友好的...

    Telnet高级入侵

    也可以使用专门的 Telnet 工具来进行连接,比如STERM,CTERM 等工具。 Telnet 典型入侵步骤 步骤一:建立 IPC$ 连接。 步骤二:开启远程主机中被禁用的 Telnet 服务。 步骤三:断开 IPC$ 连接。 步骤四:去掉 ...

    telnet服务

    - 可使用专门的Telnet客户端软件,如STERM、CTERM等。 #### 五、Telnet典型入侵案例分析 **1. 典型入侵步骤** - **步骤一**:建立IPC$连接。 - **步骤二**:开启远程主机中的Telnet服务。 - **步骤三**:断开...

    sterm:简单术语,基于 vbeterm

    特征不支持标签无服务器支持使用 VTE 2.90 (GTK3) 单文本文件配置颜色主题支持示例配置配置进入$HOME/.config/sterm/sterm.conf [main]WordChars=-A-Za-z0-9:./?%&#_=+@~" Themes=SolarizedDark;SolarizedLight...

    STerm-开源

    STerm是一款专为嵌入式开发人员和系统管理员设计的开源Linux串行终端工具,它致力于提供一个替代minicom的高效能解决方案。Minicom是一款历史悠久的串口通信软件,广泛用于调试硬件、连接调制解调器或者进行串口网络...

    Sterm操作终端。支持SSH2安全协议

    **Sterm操作终端详解** Sterm是一款功能强大的网络终端软件,专为远程访问和管理服务器而设计。它基于SSH(Secure Shell)2安全协议,确保用户在进行远程操作时的数据传输安全性和隐私保护。SSH2协议是目前广泛采用...

    Python库 | sterm-6.0.0a6.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:sterm-6.0.0a6.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    telent入侵路由器

    黑客可以使用专门的Telnet工具,如STERM、CTERM等来远程登录到路由器。 (3)使用NTLM.EXE工具 黑客可以使用NTLM.EXE工具来去除路由器中的NTLM验证。 4. Telnet入侵路由器的风险 Telnet入侵路由器可能会导致...

    sterm-extatter-

    溪流抽水机器人 ㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤ该Bot可以从视频文件中提取音频和字幕。发送任何有效的视频文件,机器人将向您显示其中可以提取的可用流!!...TOKEN-从@BotFather获取机器人令牌APP_ID-来自my.telegram....

    远程登录软件s-term

    作为一个telnet软件,s-term除了具有一般telnet工具的功能,还专门针对上bbs站的需要,提供了一些很实用的功能,其中很多功能与cterm有得一拼。 s-term支持bbs的鼠标浏览。自动识别屏幕上的菜单,支持使用鼠标点击...

    S-Term v2.549 中英文版.RAR

    一个能在win95/98/nt平台下运行的远程登陆软件,她设置简单,使用方便,她采用多文档界面,能在一个框架中打开多个窗口,最小化时能缩小为图标,隐藏在任务栏中。如果您以前用过Netterm的话,您会发现她们其实是很...

    实验二Internet基础知识.doc

    5. 掌握使用Telnet命令以及专用的Telnet工具软件(如CTerm、STerm、NetTerm)进行远程登录。 6. 创建宽带连接,进行带宽测试。 7. 实验后,撰写实验报告,分享遇到的问题及解决方案,提出对实验教学的建议。 实验...

    ascii艺术中字体颜色

    它在早期计算机系统中非常流行,特别是在BBS(Bulletin Board System)等平台上。本篇文章将探讨如何在cterm中实现丰富多彩的ASCII艺术,并讨论字体颜色在不同终端环境下的表现。 #### ANSI转义序列 在描述部分中...

    simple-terminal:用JavaScript编写的简单(愚蠢,愚蠢,Gi头)终端机,可以拉屎和咯咯地笑

    STerm v1.0 STerm是基于JavaScript的终端Web应用程序。 这个头采用了一些非常基本的,写得不好的概念,这些概念是从流行的基于Unix的系统终端中得出的。 我在几个小时内为此编写了初始代码:P 实时示例: : 快速...

    Telemecanique Concept 2.6的模糊控制功能块参考手册-2002-EN.pdf

    - FUZ_STERM_***:讨论了单个术语的模糊化功能块。 - FUZ_SUM_***:介绍了模糊求和功能块的概要。 手册还包含了关于每个功能块的简短描述、详细描述和可能发生的运行时错误信息,为用户提供清晰的功能块使用指南和...

    zh-TW_uft-8.zip

    3. `sterm.js`:这可能是一个JavaScript文件,用于实现某种终端模拟器或者命令行接口,可能与系统管理或数据操作有关。 4. `sale.php`、`sale_back.php`:这些可能是处理销售相关业务逻辑的PHP脚本,前端和后端各一...

    SCATS用户手册

    * 在安装SCATSACCESS之前,需要更改图形设置文件Sterm.ini,修改Driveside符号为RIGHT,Country符号为USA。 * 在安装完成后,需要重新启动SCATSACCESS以获取中国右行路口图。 知识点四:SCATSACCESS系统界面 * ...

Global site tag (gtag.js) - Google Analytics