Xcaliber Power Guide..!!
ioFTPD
ioFTPD Korea Docs
ioFTPD Korea Docs Forum
 
Total Commander
토탈 커맨더 - 한국 유저 포럼
 
FTP
FTP는 File Transfer Protocol(파일 전송 프로토콜)의 약자로 서로 떨어져 있는 컴퓨터 끼리 파일을 주고 받기 위한 통신 상의 규약을 말합니다.
FTP 강좌에서는 FTP의 고급활용에 대해 다룹니다.
IRC
IRC란 Internet Relay Chat의 약자로 여러분은 IRC를 통하여 전세계 사람들과 실시간으로 이야기를 나눌 수 있습니다.
IRC 강좌에서는 Bouncer사용법등 고급활용에 대해 다룹니다..
Eggdrop
여러 언어로 개발되어 사용되고 있는 IRC bot중 Eggdrop은 1993년 GNU General Public License (GPL)를 따르는 Open Source Project로 개발 되었으며, Eggdrop은 IRC Client/bot으로서의 기능을 모두 갖추고 있기 때문에 사용자가 원하는 기능을 Tcl언어등으로 된 Plugin을 추가하는 것만으로 쉽게 IRC bot을 제작할 수 있어 가장 널리 사용되고 있는 강력한 bot입니다. Eggdrop 강좌에서는 Tcl언어로 된 플러긴을 이용한 IRC bot의 활용과 채널의 유지/관리를 다룹니다.
Home > Lecture :: Q&A :: GuestBook ::


  전체[17]   FTP (1)   IRC (3)   Appz Review (1)   Eggdrop (11)   ETC (1) 
11   1/1   로그인
     2002-07-27 06:40:22    12,521  
    4. Eggdrop과 FTP서버의 연동 (Announce bot)

4. Eggdrop과 FTP서버의 연동 (Announce bot)


  0) FTP <-> Eggdrop 연동개요

  1) FTP Server - RaidenFTPD 설치
      - FTP에서 Eggdrop으로 연결되기 위한세팅

  2) Announce Scripts 수정
      - Eggdrop에서 FTP로 연결되기 위한 세팅


------------------------------------------------------------------------------------
0) FTP <-> Eggdrop 연동개요

Announce bot을 쓰기위해선 어느정도 FTP와 Eggdrop에 대해서 이해를 하고 있어야 합니다.
시작하기전에 간략히 FTP와 Eggdrop이 어떻게 서로 만나게 되는지 한번 짚어보고 넘어가겠습니다.

  


위의 그림에서와 같이 FTP와 Eggdrop사이의 연결은 두부분으로 나뉘어 집니다.
세부적인 내용을 살펴봅시다.

  i )  FTP라이브러리(ftplib.tcl)를 이용한 연결

     - Eggdrop에 Plugin으로 로딩된 FTP라이브러리를 통해서 FTP에 접속을 합니다.
       우리가 일반적으로 FTP Client를 통해서 FTP서버에 접속하는 것과 똑같습니다.
       Eggdrop을 위한 FTP클라이언트라고 보시면 쉽겠죠.

     - 우리가 RaidenFTPD서버에 클라이언트로 접속해서 SITE명령어를 이용하듯 Eggdrop은
       ftplib.tcl 플러긴을 이용해서 FTP서버에 접속후 SITE명령어를 사용합니다.

     - 예를 들어 !xpgbw, !xpgspeed , !xpgalup, !xpgaldn 이런 명령어들을
       채널에서 치게되면 bot이 ftplib.tcl을 이용해 서버에 접속후 관련 SITE명령을 내린후
       나오는 데이터를 Plugin으로 탑재된Announce Script가 가공해서 채널에 뿌려주게 됩니다.
          
   예) [Xcaliber]!xpgbw
        [XPG_bot]-XPG-BANDWIDTH- Currently 6 Idlers and 1 uploads(102 K/s) and 23 downloads(3198 K/s). Total: 3300 K/s.
         위의 예는 Eggdrop이 FTP서버에 "site who" 명령어를 내려서 가공해서 보여주는 데이타입니다.

   ii ) Telnet을 통한 연결

     - 위의 FTP라이브러리를 이용한 연결과 다른 또하나의 연결로 FTP에선 Eggdrop으로
        데이터를 Telnet으로 보냅니다. Telnet으로 보내는 데이터는 FTP데몬에서 설정해준
        이벤트들로서 폴더생성이나 폴더삭제, Nuke 데이터등이며 실시간으로 Telnet을 통해
        Eggdrop으로 보냅니다. FTP에서 보내진 데이터는 Plugin으로 탑재된Announce Script가
        가공해서 채널에 뿌려주게 됩니다.

    - FTP서버에서 Eggdrop으로 Telnet을 통해 가는 연결은 단방향입니다.

   예) Telnet으로 FTP에서 전송된 데이터 = ".info nuke|Xcaliber|SiTEOP|The.Others.SBC.AC3|3|Incompleted"
        [XPG_bot]-XPG-NUKE-The.Others.SBC.AC3 has been nuked by [email protected] for 3X Credits for reason Incompleted.
        위의 예는 FTP서버에서  "site nuke The.Others.SBC.AC3|3|Incompleted" 명령어가 실행되서 나온
        결과입니다.


다시 정리해보자면 SITE명령어는 ftplib.tcl을 통해서, 서버에 폴더가 생성되거나 파일이 업로드될 때 발생되는
이벤트는 Telnet을 통해서 데이터가 오고갑니다. 이 두 연동경로로 생성되는 데이터는 탑재된 Announce Script가
가공하여 동일한 포맷으로 채널에 뿌려주게 됩니다

------------------------------------------------------------------------------------

# Announce Script설치는 일반적인 DeKuF 2.0.5버젼으로 합니다.


1) FTP Server - RaidenFTPD 설치 환경설정

     1. RaidenFTPD를 설치합니다.    다운 : RaidenFTPD.v2.2.1377.WinALL.zip

     2. Eggdrop에서 FTP서버로 접속할 수 있는 계정 생성.

       - GUI환경에서 추가하거나 FTP접속해서 SITE명령어로 계정생성합니다.


      ftp> site adduser xpgbot xpgpass nukers,sitebot
        221- site adduser result.
        221- username : [xpgbot].
        221- password : [xpgpass].
        221- group : [nukers,sitebot].
        221 site adduser completed.

      ftp> site chlvl xpgbot 0
        221 site chlvl done : xpgbot's level is now 0

      ftp> site addip xpgbot 100.100.12.123
        220 site addip succeded : [email protected] 100.100.12.123 had
         been  added to ip allowing list.


     - ip add는 하셔도 되고 안하셔도 되고, 저위의 아이피를 등록하시는 분은 없겟죠.? ㅋㅋ
  
   3. FTP서버에서 Eggdrop(Telnet)으로 연결되기 위한 Raidenftpd의 설정화일 (*.ftpd) 수정

     - *.ftpd화일을 불러 아래내용을 맨아래 추가합니다.

              ADVANCED=1
              [EGGDROP]
              enable=1
              user=xpgegg  //Eggdrop에 추가 등록된 유저 (아래 내용참조)
              pass=eggpass
              ip=100.100.12.123  //Eggdrop이 설치된 곳의 IP
              port=3333  //eggdrop.conf에 설정된 Telnet listen Port
              onNewDir=.info new|%S|%g|%r|%t|%i
              onDelDir=.info del|%S|%g|%r|%t|%i  //아래 .info로 시작하는 부분들이 이벤트가 발생하면
              onMoveDir=                                    //Eggdrop에 Telnet을 통해 보내지는  데이타입니다.
              onUserConnect=
              onUserLogin=.info login|%S|%g|%i
              onUserLoginFailed=
              onUserLogout=.info logout|%S|%g|%p|%d|%i
              onFileUploaded=
              onSfvUploaded=.info update|%S|%g|%r|%R|%i
              onSfvFailed=
              onSfvSuccess=.info fileup|%S|%g|%r|%b|%R|%V|%i
              onSfvPreDelete=
              onSfvComplete=.info complete|%S|%g|%r|%t
              onFileDownloaded=
              onFilePreUpload=
              onFilePreDownload=
              onFilePreDelete=
              onFileDeleted=
              onMp3Uploaded=
              onZipUploaded=
              onEveryDay=.dated
              onPreCwd=
              onNukeDir=.info nuke|%S|%g|%r|%j|%F|%i
              onSiteCmd=.prescript |%S|%g|%i|%e|%!
              onSiteCmd2=
              onSiteCmd3=
              onSiteCmd4=

2) Announce Scripts 수정및 Eggdrop에서 FTP로 연결되기 위한 세팅

   1. Annouce Script 다운로드.     다운 : dekuf.v.2.0.5.zip

   2. Announce Script로딩을 위한 eggdrop.conf 수정

       - 아래 내용을 conf화일에 추가해줍니다.
          source scripts/ftp_lib.tcl  //FTP라이브러리
          source scripts/DeKuF.tcl  //Announce Script


   3. Announce Script (DeKuF.tcl) 수정

      - DeKuf.tcl 을 Text Editor로 보시면 세팅하는 부분이 꽤 많은걸 보실수 있을겁니다.
        여기서는 기본적으로 연동부분만 설명을 간단히 하고 나머지 세팅은 주석이 잘 달려있으니까
        직접 자신의 서버에 맞게 세팅하시기 바랍니다.

    # Server name
    set site(Name) "XPG FTP"  //FTP서버의 이름을 적어줍니다.

    # Abreviation of the sitename
    set site(Tag) "xpg"  //Trigger에 사용되는 태그 예) !xpg who

    # URL or Ip of the raidenftpd server
    set site(IP) "xxx.xxx.xxx.xxx"  //FTP서버  IP를 적어줍니다.

    # port where raidenftpd server is running
    set site(Port) "12345"  //FTP서버 Port를 적어줍니다..

    # Valid user login to be used by the bot
    # If you want to use the ftp administration commands this user login must have privileged level
    # user must have group nukers,sitebot
    set site(User) "xpgbot"  //위에서 FTP서버에 생성한 계정을 적어줍니다.
                                                  
    # Valid user password for the username above
    set site(Pass) "xpgpass"

    # Channels to monitor for commands, separate them with a space("#chan1 #chan2 #chan3")
    set access(Channels) "#FuKeD #requests"  //Announce될 채널을 적어줍니다. 예)#XPG
                                                                이후 나오는 #FuKeD채널도 Editor의 바꾸기 기능을
                                                                이용해서 모두 Announce할 채널로 바꿔줍니다.(중요)

    - 여기까지 Announce bot탑재를 위한 기본적인  DeKuf.tcl 설정은 끝났습니다.  이후는 섭에 맞게 적절히
      세팅하시면 되겠습니다.

   4. FTP에서 Eggdrop에 Telnet으로 억세스 할 수 있는 유저생성.

        - 채널에 Join되어있는 봇의 PartyLine으로 로긴하여 다음과 같이 유저생성합니다.
           (이부분 모르시는 분 없겟죠.? DCC Chat입니다.)
          .+user xpgegg *@100.100.12.*  //FTP서버->Telnet으로 접속할 수 있는 계정(FTP서버 IP나 *@*를 추가)
          .chattr xpgegg +mfp  //xpgegg의 속성변경
          .chpass xpgegg eggpass  //xpgegg에 패스워드 설정

여기까지 Announce bot을 띄우기 위한 세팅은 끝났습니다.
순서대로 따라서 잘 해주셨다면 Script는 성공적으로 작동을 할겁니다.

이제 FTP서버를 띄우고 Eggdrop을 띄우시면 FTP서버에서 일어나는 이벤트를 IRC 채널에서 보실 수 있습니다.

이번 강좌는 여기저기 계정도 많이 만들고 세팅할 부분도 많아서 조금 난해하긴 합니다만 처음에 언급했던 연동의 개요와 세팅부분을 한두번 꼼꼼히 보신다면 쉽게 소화하실 수 있으시리라 봅니다.

재미없는 긴글 읽어주셔서 감사합니다. ^_^
Kitty™ (2002-07-28 16:21:21)  
끄덕 끄덕. 먼말인지 몰거따 텨텨.
원피스 (2002-07-29 16:37:09)  
으 날시험에 들지 말게 하오소서 (기독교신자 아님)ㅡㅡ흠
이유정 (2002-08-02 20:16:12)  
아~ 저렇게하는거구나..--V
HMAODKA (2002-10-14 09:27:15)
왜 안되는걸까.. ㅠ.ㅠ
NiTroXP (2002-10-29 09:02:57)  
흐미 머리 깨지것는데여...봇은 뜨는데..연동이 안되네여...ㅜ,.ㅜv
(2002-11-06 01:58:09)  
연동이 안되신다면 첫째로 eggdrop에 telnet으로 억세스 할수 있는 계정이 제대로 되어있는지 확인하시구요. 그리고 라이덴 크랙버젼은 현재로선 1377, 1525버젼만
(2002-11-06 01:58:38)  
에그드랍과 연동이 잘됩니다. 그외의 크랙버젼은 연동이 안됩니다.
NiTroXP (2003-01-14 00:11:34)
DeKuF.tcl에서...FTP Advertisement과 PreSection부분좀...자세히 설명해 주시면 안될까여....^,.^;;...그부분이 이해가 잘안되서요....부탁 드립니다...(__);;
[이전글] 5. 비번이 설정된 채널에 Join하기
[다음글] 3. Eggdrop 활용 [자동인삿말]
Copyright 1999-2018 Zeroboard / skin by jintia
Xcaliber Power Guide ⓒ 2002-2012 Xcaliber™ All right reserved