首页 > 代码库 > IRC僵尸网络日记(一)

IRC僵尸网络日记(一)

知道了原理以后,就可以着手来写了。

服务器暂时用现有的程序,只需要自己写客户端即可。打算用python来写。

需要涉及的技术:

(1)python的socket模块

(2)IRC命令(用send发送)

刚开始就遇到了问题:可以连接到服务器上,但是无法加入频道中。不就应该是send(‘join #ircchannel \r\n‘)吗?

后来发现,这句以后服务器会发来ping命令,你必须回答一个pong,才可以连接到频道中。具体做法如下:

import socketnickname=lilynetwork = 172.29.153.23port = 6667channel=#absirc = socket.socket( socket.AF_INET, socket.SOCK_STREAM )irc.connect((network,port))irc.send(nick  %s\r\n %nickname)irc.send ( USER 1 %s %s : %s \r\n% (network,network,nickname))while True:    data = irc.recv ( 4096 )    print data    if data.find ( PING ) != -1:        irc.send ( PONG  + data.split() [ 1 ] + \r\n )        irc.send ( JOIN %s\r\n%channel)        irc.send(privmsg %s : canyouhearme\r\n%channel)

只不过ping的有点慢,但还是可以通信的。
不过,这个代码也太丑了,简单粗暴,就不能美化一下吗?

 

IRC僵尸网络日记(一)