Perl OICQ

SourceForge.net Logo

Net::OICQ的主要目标是实现QQ即时通讯所用的协议,以便利自由软件使用者和QQ使 用者交流. Net::OICQ本身只是个Perl的面向对象的模块,提供一些和QQ服务器打交道的 基本方法. 软件包中含有一简单client程序已经实现一些基本的QQ功能.

QQ协议所用的加密算法多年来一直没有变化,所以从Net::OICQ中分出来成为一个独 立的模块, Crypt::OICQ。安装Net::OICQ前,请先安装Crypt::OICQ。如有问题,欢迎 到我的论坛来讨论。

点这里下载Crypt::OICQ和Net::OICQ

安装说明

  1. Net::OICQ需要用Digest::MD5模块. 用下面命令查看系统是不是已经装了Digest::MD5
         perl -MDigest::MD5
    

    如果出现错误信息,你需要 去CPAN下载Digest::MD5

  2. 确定有Digest::MD5后,把下载的Net-OICQ-x.y.tgz和Crypt-OICQ.1.1.tgz打开
        $ tar zxvf Crypt-OICQ-1.1.tgz
        $ cd Crypt-OICQ-1.1
        $ perl Makefile.PL
        $ make test
        $ su
        # make install
    
        $ tar zxvf Net-OICQ-x.y.tgz
        $ cd Net-OICQ-x.y
        $ perl Makefile.PL
        $ make test
        $ su
        # make install
        # cp q /usr/local/bin/oicq
        # chmod a+x /usr/local/bin/oicq
        # exit
        $
    

使用说明

  1. 先把密码存在环境变量OICQ_PW
        $ export OICQ_PW=OICQ密码
    
  2. 登陆腾迅服务器
        $ oicq OICQ号码
    
  3. 登陆后,所有以斜杆/开始的键盘输入行都被当做是命令,其他键盘输入行都 被当做要送出的话存人信息缓冲,等到空行输入时才送往默认的号码.用/加号码 来设定默认号码.举个例子,用下列命令给我送话:
        /52482796
        试一下
        第二行
        连打两次ENTER送出
    

    其他命令

        /help
        /who       在线朋友
        /f         列出所有朋友
        /54321     和54321聊
        /mode [i|n|a] 设隐身,正常,离开
        /get       看自己的info
        /get <别人的号码>
        /away      启动/关闭自动回复
        /update    更新资料
        /passwd xxxxxx 改密码
        /s id      搜索id
        /s         列出25个在线用户
        /s 10      列出10x25个在线用户
        /add id    加id
        /del id    除id
        /ban id    禁id
        /accept id 接受加好友请求
        /reject id 拒绝加好友请求
        /buf       看信息缓冲区
        /rmbuf     清除信息缓冲区
        /ls        列出用/get获取的资料
        /rm id     删除用/get获取的资料
        /exit      退出
    

2005年1月4日 Net::OICQ 0.9版

  1. 一些小修补对付腾迅的新信息格式。
  2. OICQ/TextConsole.pm增加两处过滤器处理用户信息中的0x00-0x1f控制字符。

2003年10月18日 Net::OICQ 0.8版

  1. 加密算法放到Crypt::OICQ模块。
  2. 新命令/eval,让你即兴运行脚本。
  3. 新增plugin子程序,允许自定义自动回复插件。
  4. 新增发话命令:/[号码] [要送出去的话] 可以马上发送,但不改缺省聊天对象。
  5. 新增快捷使用好友号码功能,/f命令输出的序列号可用于命令中代替好友QQ号。
  6. 新增显视对方QQ版本功能(16进制表达)。
  7. 修正了收发时间错误
  8. 解决模块在使用Perl 5.8版时的多字节字符问题
  9. $oicq->{PWMD5}改为$oicq->{PWKey},因为v2000c 1230b以后使用密码的双重MD5。
  10. 解决perl oicq特色的“翁”毛病,让你看到对方使用的字体名。
  11. 可执行文件名字改为q。旧名字oicq在cygwin下和OICQ目录名冲突。

2003年6月29日 Net::OICQ 0.7版

  1. 登录过程大量改写,自动接受新服务器地址。
  2. 终于搞定隐身。
  3. 采用彩色终端Term::ANSIColor模块。
  4. 进一步分离协议与Client代码,为图形界面做好准备。

2003年4月12日 Net::OICQ 0.6版

Bug fixes

2003年2月8日 Net::OICQ 0.5版

OICQ加密算法完全破解.Net::OICQ不再包含Intel汇编语言代码.

Perl OICQ is a project for developing Net::OICQ perl module.

Net::OICQ is a perl module that implements OICQ protocol. It includes a console-only OICQ client.

The cipher used by QQ protocol has not changed for years though the QQ protocol has changed many times. I decided to implement the cipher in a separate module named Crypt::OICQ so you do not need to download the code again and again. Please stop by my forum if you wish to discuss the QQ protocol.

Net::OICQ requires Digest::MD5 module. You can download Digest::MD5 from CPAN if it is not included in your Perl distribution.

Download Crypt::OICQ and Net::OICQ

Installation Procedure

    $ tar zxvf Crypt-OICQ-1.1.tgz
    $ cd Crypt-OICQ-1.1
    $ perl Makefile.PL
    $ make test
    $ su       
    # make install

    $ tar zxvf Net-OICQ-x.y.tgz
    $ cd Net-OICQ-x.y
    $ perl Makefile.PL
    $ make
    $ make test
    $ su
    # make install
    # cp oicq /usr/local/bin
    # chmod a+x /usr/local/bin/oicq
    # exit

How to use

    $ export OICQ_PW=<OICQ passwd>
    $ oicq <OICQ id>
    /help