맨위로가기

IRC 봇

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

IRC 봇은 인터넷 릴레이 챗(IRC) 채널에서 다양한 기능을 수행하도록 설계된 독립적인 프로그램이다. 주로 채널 관리, 정보 제공, 로깅, 엔터테인먼트, 파일 공유 등의 목적으로 사용되며, 안정적인 서버 환경과 긴 업타임을 필요로 한다. IRC 봇은 채널 점령 방지, 사용자 권한 관리, 채널 내 게시물 로깅, 정보 제공, 게임 호스팅 등 다양한 기능을 수행하며, 스크립팅 언어를 통해 기능을 확장할 수 있다. 봇의 사용은 네트워크 트래픽 증가와 데이터베이스 크기 증가로 인해 일부 IRC 네트워크에서는 제한되기도 한다. 다양한 종류의 IRC 봇이 존재하며, 각 봇은 운영 체제, 프로그래밍 언어, 라이선스, 기능 등에서 차이를 보인다.

더 읽어볼만한 페이지

  • IRC - 서비스 거부 공격
    서비스 거부 공격(DoS)은 시스템의 가용성을 저해하는 사이버 공격으로, 서비스 충돌 또는 범람을 유발하며, 분산 서비스 거부 공격(DDoS)과 다양한 공격 기술, DoSaaS 등장 등 여러 형태로 발전해 왔고, 업스트림 필터링, 방화벽 등 방어 기술을 통해 대응하며, 관련 법률 위반 시 처벌받을 수 있다.
  • IRC - 엑스챗
    엑스챗은 다양한 운영체제에서 작동하는 IRC 클라이언트로, 여러 언어의 플러그인을 지원하며, 윈도우 버전의 셰어웨어 전환으로 저작권 논쟁이 있었고 비공식 무료 버전이 배포되기도 했다.
  • 인터넷 봇 - 비디오 게임 봇
    비디오 게임 봇은 사용자의 조작을 대신하거나 플레이어 수를 보충하기 위해 사용되는 프로그램이며, 게임 밸런스를 해치고 부정적인 측면이 존재하여 한국 온라인 게임에서 심각한 문제가 되기도 한다.
  • 인터넷 봇 - Lsjbot
    Lsjbot은 Lars Sverker Johansson이 개발한 위키백과 문서 자동 생성 봇으로, 세부아노어 위키백과와 스웨덴어 위키백과에 기여했으며, 문서 내용 부족에 대한 비판에도 불구하고 위키백과의 성차별 문제 해결에 기여한다고 주장했다.
IRC 봇
봇 정보
종류스크립트 또는 독립 프로그램
역할인터넷 릴레이 채팅 클라이언트
기능다양한 작업 자동화, 채널 관리, 사용자 지원 등
활용IRC 네트워크 관리, 정보 제공, 게임 운영 등
일반적인 기능
자동 응답특정 메시지에 자동으로 응답
채널 관리사용자 관리, 채널 설정 변경
로깅채널 대화 내용 기록
통계채널 사용자 수, 메시지 빈도 등 통계 정보 제공
개발 및 운영
프로그래밍 언어다양한 언어 (예: 파이썬, 자바, 펄)
프레임워크다양한 IRC 봇 프레임워크 존재
운영 체제리눅스, 윈도우 등 다양한 운영체제에서 실행 가능
보안 고려 사항
인증안전한 인증 방법 사용 (예: SSL/TLS)
권한 관리사용자 권한을 적절히 관리
악성 코드 방지악성 코드로부터 보호
추가 정보
관련 기술인터넷 릴레이 채팅 (IRC) 프로토콜
참고 자료IRC 봇 관련 온라인 문서, 튜토리얼

2. 기능

IRC 봇은 안정적인 호스트에서 실행되는 분리된 프로그램으로 배포되는 경우가 많다. 봇은 IRC 채널에 상주하며 채널 관리, 정보 제공, 로깅, 엔터테인먼트, 파일 공유 등 다양한 기능을 수행한다.

채널 권한 관리 외에도 다음과 같은 기능을 수행할 수 있다.


  • IRC 채널에 게시된 내용을 기록(로깅)한다.
  • 요청 시 정보를 제공한다. (사용자 지원 관련 채널에서 유용)
  • 채널의 최고 게시자와 로커 통계를 생성한다.
  • 퀴즈, 우노 등의 게임을 진행한다.


이러한 기능은 주로 Tcl, Perl 같은 스크립팅 프로그래밍 언어로 작성된 스크립트를 통해 제공된다.[1] 파일 공유를 목적으로 하는 채널에서는 XDCC 봇을 사용하여 파일을 배포하기도 한다.[1]

EFnet이나 IRCnet과 같이 채널 등록 서비스가 없는 IRC 네트워크나, Undernet 또는 QuakeNet과 같이 채널 등록 조건이 까다로운 네트워크에서 봇이 유용하게 활용된다. 이러한 경우 봇은 일반 클라이언트 연결보다 더 많은 접근 권한이 필요할 수 있으며, 일부 IRC 버전에는 "서비스" 프로토콜을 통해 이러한 추가 권한을 가진 클라이언트를 허용하기도 한다. 이렇게 서버에서 승인된 봇을 IRC 서비스라고 한다.[1]

하지만 일부 IRC 네트워크에서는 봇 사용을 금지하기도 한다. 이는 각 별명이 네트워크 데이터베이스의 크기를 증가시켜 네트워크 트래픽 오버헤드를 발생시키고, 심지어 넷스플릿을 유발할 수 있기 때문이다.[1][2]

2. 1. 채널 관리

IRC 봇은 IRC 채널을 유지하고 관리하는 데 중요한 역할을 한다. 봇은 채널을 열어두고 악의적인 사용자가 채널을 점령하는 것을 방지한다. 봇은 특권 있는 사용자가 채널에 참여할 때 채널 운영자 권한을 부여하도록 구성할 수 있으며, 통합된 채널 운영자 목록을 제공할 수 있다.[1][2]

2. 2. 정보 제공 및 로깅

봇은 IRC 채널에 게시된 내용을 기록(로깅)하고, 요청 시 정보를 제공할 수 있어 사용자 지원과 관련된 IRC 채널에서 매우 유용하게 활용된다.[1] 채널의 최고 게시자와 가장 오래된 로커를 추적하는 통계를 만들 수도 있다.[1]

2. 3. 엔터테인먼트

봇은 퀴즈, 우노 등의 게임을 호스팅할 수 있다.[1] 이러한 기능은 봇 사용자가 Tcl, Perl 같은 스크립팅 프로그래밍 언어로 작성한 스크립트를 통해 제공되는 경우가 많다.[1]

2. 4. 파일 공유

파일 공유에 전념하는 채널에서는 XDCC 봇을 사용하여 파일을 배포하기도 한다.[1][2]

2. 5. 기타 기능

스크립트 프로그래밍 언어를 통해 봇의 기능을 확장할 수 있다. 예를 들어, Tcl이나 Perl과 같은 언어로 작성된 스크립트를 사용하여 봇에 새로운 기능을 추가할 수 있다.[1]

봇은 채널에 게시된 내용을 기록하고, 요청 시 정보를 제공하며, 통계를 작성하거나, 퀴즈나 우노와 같은 게임을 호스팅하는 기능을 수행할 수 있다. 파일 공유를 위한 채널에서는 XDCC 봇을 사용하여 파일을 배포하기도 한다.[1]

EFnet이나 IRCnet과 같이 채널 등록 서비스가 없는 IRC 네트워크나, Undernet 또는 QuakeNet과 같이 채널 등록 조건이 까다로운 네트워크에서 봇이 유용하게 활용된다. 이러한 경우 봇은 일반 클라이언트 연결보다 더 많은 접근 권한이 필요할 수 있으며, 일부 IRC 버전에는 "서비스" 프로토콜을 통해 이러한 추가 권한을 가진 클라이언트를 허용하기도 한다. 이렇게 서버에서 승인된 봇을 IRC 서비스라고 한다.[1]

하지만 봇이 항상 환영받는 것은 아니다. 일부 IRC 네트워크에서는 봇 사용을 금지하기도 하는데, 이는 각 별명이 네트워크 데이터베이스의 크기를 증가시켜 네트워크 트래픽 오버헤드를 발생시키고, 심지어 넷스플릿을 유발할 수 있기 때문이다.[1][2]

3. 종류 및 비교

IRC 봇주요 개발자라이선스운영 체제프로그래밍 언어최초 공개일 (버전)최신 버전 - 날짜 (버전)주목할 만한 기능기능 범위웹사이트
AnGeL-BotBenedikt HübschenGPL-3윈도우Visual Basic 61999 (1.2.0)2003-05-31 (1.6.2 BETA 10)당시 가장 빠른 윈도우 IRC 봇, Windows 스크립팅을 통한 광범위한 스크립팅 지원, 여러 Active 스크립팅 언어와의 호환성, 색상 파티라인 및 Eggdrop 호환 봇넷 지원.다목적GitHub
CardinalJohn MaguireMIT크로스 플랫폼Python 32013-02-03 (베타)2021-01-13 (3.1.0)개발 용이성, 재로딩 가능한 비동기 플러그인, 명령에 대한 파이썬 데코레이터, IRC 이벤트, 간단한 영구 JSON 데이터 저장소 및 잘 문서화된 API.GitHub
PynfokuranGPL-2크로스 플랫폼Python2002-10-212013-02-27네트워크 브리징/릴레이, 기본 "인포봇" 기능, 구글링, 3개의 접근 계층, 더 짧은 링크 기능. 쉽게 확장 가능하며 완전히 디스크에 영구적으로 저장.SourceForge
SupybotJeremiah Fincher, James Vega 외BSD크로스 플랫폼Python? (0.30)2018-05-10 (0.84.0)많은 플러그인, SSL, 여러 네트워크 지원, 플러그인 (언)로드, 스레드, 구성 레지스트리, 표준화된 명령 구문, 인수 구문 분석.SourceForge, GitHub
CerberusStefan HüsgesGPL-3.0크로스 플랫폼PHP2008-02-18 (베타)2016-10-04 (1.6.0)GitHub
CinchDominik Honnef, Lee JarvisMIT유닉스 계열Ruby2010-07-08 (0.3.2)2015-03-31 (2.2.5)스레드, 객체 지향봇 작성 프레임워크GitHub
CNT BotCNT Bot 팀Unlicense유닉스 계열TCL2015-06-15 (0.1)2015-07-24 (0.2)투표, 여론 조사, 대리인 선출/소환, 전원 회의 개최, 입장 제어, 다른 CNT 봇에 자동 연결수평적인 네트워크를 구축하는 디지털 활동가를 위한 민주주의 소프트웨어cntbot.org
DarkbotJason Hamilton, juiceGPL유닉스 계열C???데이터베이스에서 사용자 질문에 응답SourceForge
DaskebDigitGPL유닉스 계열Haskell??최소한의 시작 봇NotABug
EggdropEggheadsGPL크로스 플랫폼C1993-122022-03-06 (1.9.2)SSL, 봇넷, 파티라인, 파일 공유, 사용자 관리, IRC 봇 가동 시간 경쟁, Tcl 스크립팅 지원다목적eggheads.org
EnergyMechProtonGPL유닉스 계열C1998-09-10 (2.5.24, Proton의 첫 번째 릴리스)2018-03-09 (3.0.99p4)단일 스레드 멀티 봇 가능, 낮은 리소스 사용, 봇넷, 사용자 관리, 채널 관리, 내장 irc 바운서, 연결을 끊지 않고 업그레이드 가능, IRC 봇 가동 시간 경쟁, tcl, python 스크립팅 지원.다목적energymech.net
ErebotFrançois PoirotteGPL-3.0크로스 플랫폼PHP2010-10-092011-05-08여러 모듈로 확장 가능하며 여러 네트워크, 여러 ID, SSL/TLS, STARTTLS, IdentD 및 다양한 IRC 데몬 확장을 지원. 고급 채널 봇을 만들 수 있는 프레임워크로 사용 가능.게임GitHub
ErwinIdar LundGPL-2.0+크로스 플랫폼Perl2004-04-05 (1.0-beta1)2017-03-19 (1.2.0)새로운 모듈을 작성하여 쉽게 확장 가능.데이터베이스에서 사용자에게 응답.SourceForge
FoxBotLee WatsonGPL-3.0크로스 플랫폼Java?2013-09-06 (0.9)명령 프레임워크는 명령을 쉽게 작성할 수 있도록 설계. 간단하고 강력한 권한 시스템. 간단하고 완전히 설명된 구성.GitHub
FoxEyeAndriy GrytsenkoGPL유닉스 계열C2011-01 (베타)2011-02-24 (0.9b10)멀티스레드, 멀티네트워크. 사용자 또는 네트워크별로 인코딩 선택. 플러그인으로 확장 가능하며 클라이언트 또는 기타 용도로 사용 가능. 현재 지원되는 스크립트: Lua, Tcl.메시징 네트워크용 인터넷 클라이언트/서버/게이트웨이를 구축하기 위한 키트SourceForge
GambotDerek HoaglandGPL유닉스 계열Perl2011-1-12011-07-16 (1.0)봇을 만들기 위한 프레임워크. 메시지는 완전히 비동기식으로 처리. 모든 프로그래밍 언어로 확장 가능. 다시 연결, 다시 시작 또는 다시 로드하지 않고 업데이트 가능.트위터 및 기타 피드, 게임/밈GitHub
GozerbotBart ThateBSD유닉스 계열Python?? (1.0.1)IRC 및 XMPP 봇; Google Wave와 연결될 수 있음Wayback Machine
mikoskinenGeoff WoollamsMIT크로스 플랫폼C#2015-10-082015-10-09 (0.1)IRC 명령은 모든 명령줄 또는 http 요청을 시작하여 모든 프로그램 또는 스크립트가 출력을 통해 봇을 제어할 수 있도록 함. 사용자 시작 작업이 아닌 경우 MySQL 지원 및 타사 통합.GitHub
guppySvetlana TkachenkoGPL크로스 플랫폼Python2011-03-202012-12-11 (0.4.3)설치가 쉽고 모듈식 구조다목적gnu.org.ua
IbidJonathan Hitchcock, Michael Gorven, Stefano RiveraGPL3, 핵심 MIT 하에유닉스 계열Python, IM 프로토콜의 Twisted? (0.1.0)? (0.1.1)Twisted 엔진을 사용하면 IRC, XMPP, SILC, Campfire, NMDC를 포함한 여러 IM 소스에 연결 가능.+ 플러그인 "factoids"는 데이터베이스에서 사용자에게 응답GitHub
InfobotKevin LenzoArtistic License유닉스 계열Perl2004-082008-08-01 (1.5.3)?데이터베이스에서 사용자에게 응답.SourceForge
IrcBotMarlincBSD유닉스 계열PHP? (0.1)? (1.2)?GitHub
jenniMichael YanovichEFLv2유닉스 계열Python (2)??스레드, 일반적인 목적, 일부 게임 포함. 새로운 모듈을 작성하여 쉽게 확장 가능.사용자 관리, 대화/조회, 게임GitHub
irccdDavid DemelierISC크로스 플랫폼C++17 및 JavaScript2013-09-13 (1.0.0)2021-01-04 (3.1.1)여러 서버, 규칙 필터링, 템플릿 시스템, 크로스 플랫폼, Javascript 및 C++ 플러그인으로 확장 가능봇 프레임워크malikania.fr
JerkbotJason StephensonArtistic License 2.0크로스 플랫폼Sleep2014-02-10 (1.0)2017-08-29 (1.7.65)구성 가능한 수다 봇, jIRCii 스크립트로 작성됨반응형 수다 + 학습 + 모듈cepheidvariable.online
JSONBOTBart ThateMIT유닉스 계열Python2010-042012-03-23 (0.84.4)베타GitHub
JZBotAlexander Boyd, Maximilian Dirkmann, James StokerLGPL크로스 플랫폼Java???피드, 늑대인간/마피아, 카르마 시스템, 알림Archive.today
KGBMartín Ferrari 및 Damyan IvanovGPL-2+크로스 플랫폼Perl2008-07-14 (Git)2014-09-17 (1.3.3)KGB는 Git, Subversion 및 CVS 저장소에 대한 커밋에 대한 IRC에서 알림을 제공하는 시스템.코드 커밋에 대한 알림MetaCPAN
LambdabotAndrew J. Bromage et al.MIT유닉스 계열Haskell? (1.0)2011-01-20 (4.2.3.2)많은 플러그인; GHCi에서 Haskell 개발 도구로 오프라인으로 사용 가능haskell 개발 도구haskell.org
LimnoriaBSD크로스 플랫폼Python?2022-07-29 (2022.07.29)Supybot 참조Supybot의 유지 관리된 포크GitHub
MozbotIan Hickson, Chris CrewsMPL크로스 플랫폼Perl???개발자 커뮤니티에 대한 서비스Wayback Machine
MrBot - AwesomeBotMattMc아파치 v2크로스 플랫폼Java2013년 11월2014-06-01엄청난 기능을 갖춘 Semi-Advanced Java 봇이며 더 많은 기능이 추가될 예정. 자세한 내용은 espernet의 #AwesomeBot에 참여.factoids + lastseenArchive.today
nibblrjrKirjava없음크로스 플랫폼Javascript??사용자 지정 동작을 동적으로 생성하기 위한 봇 프레임워크봇 프레임워크GitHub
node-ircMartyn SmithGPLv3유닉스 계열Javascript?2015-01-16 (0.3.9)노드- 네이티브 비차단NodeJS IRC 라이브러리.GitHub
PircBotPaul MuttonGPL크로스 플랫폼Java2001-08-012009-12-14 (1.5.0)봇을 만들기 위한 프레임워크봇을 만들기 위한 프레임워크jibble.org
pmxbotYouGov, Jamie Turner, Chris MulliganMIT유닉스 계열Python 3??작업 IRC 네트워크에 맞게 확장 가능하도록 설계됨대화, 검색, 게임GitHub
Ruby-rbotruby-rbotGPL유닉스 계열Ruby??유연한 플러그인 시스템트위터 & RSS 피드, 검색, 게임ruby-rbot.org
Rubybotumby24GPL-3.0크로스 플랫폼Ruby?2013-10-30 (4.2)간단하지만 쉽게 확장 가능.사용자 관리GitHub
SchongoSelig, Posiden, Wil?크로스 플랫폼Python 3??단순성에 중점을 둔, 확장 가능한 모듈 시스템, 빠른 개발 주기인터넷 검색GitHub
ShadowAaron BlakelyMIT크로스 플랫폼Perl2012-08-312022-06-09재로드 가능한 플러그인, 채널 관리, 날씨 정보, 링크 메타데이터 가져오기, RSS 등.다목적, 봇 프레임워크GitHub
ShockyShockah, clone1018GPL-2.0크로스 플랫폼Java모든 종류의 것을 지원하는 매우 고급 Java irc 봇사용자 관리, factoids, 게임, 카르마 시스템GitHub
sircbotAlpine LinuxGPL-2.0유닉스 계열C (Lua scriptable)?2011-12-15쉘 및 루아 스크립트용 간단한 IRC 봇Alpine Linux Wiki
Sopeldgw, Elsie Powell, Dimitri Molenaars, Elad Alfassa, Ari KoivulaEFLv2크로스 플랫폼Python2012-07-15 (3.0.0)2020-08-04 (7.0.6)SSL, 런타임에 플러그인 (언)로드, 스레드, 사용자/채널/플러그인 설정 데이터베이스, Python 3 지원. (이전에는 Willie; 원래 phenny를 기반으로 함)트위터 & 기타 피드, 인터넷 검색, meetingbot, 링크 정보sopel.chat
TennuHavvy (Ryan Scheel)ISC크로스 플랫폼Javascript2012-03-08 (1.0.0)2016-06-22 (4.9.0)Node.js, 플러그인 아키텍처, Promise 기반사용자 관리tennu.github.io
Ultrosgdude2002 및 rakiruArtistic License 2.0크로스 플랫폼Python22013-04-08 (Git)2014-09-25 (1.1.0+)확장 가능한 플러그인 및 프로토콜 시스템, 패키지 관리자를 갖춘 Python IRC 봇. Mumble도 지원.인터넷 검색, 게임GitHub
VikingBotTor Henning UelandGPL-3.0유닉스 계열PHP?2013-10-09안전한 IRC 서버 및 플러그인 지원을 제공하는 간단한 PHP 기반 IRC 봇봇 통계GitHub
YauibJulien Palard단순화된 BSD크로스 플랫폼Python2011-03-22?플러그인은 모든 언어로 작성 가능.모든 pubmsg 및 priv를 가져와 첫 번째 단어를 실행 파일이 있는 디렉토리의 명령과 나머지 매개변수로 일치시키려고 시도.GitHub


4. 논란 및 윤리적 문제

IRC 봇의 사용은 때때로 논란이 되기도 한다. 일부 IRC 네트워크에서는 봇 사용을 금지하는데, 이는 각 별명이 모든 서버에서 동기화되는 네트워크 데이터베이스의 크기를 늘리기 때문이다. 대규모 네트워크에서 봇을 허용하면 상당한 양의 네트워크 트래픽 오버헤드가 발생하여 자금 지원이 필요하며, 심지어 넷스플릿으로 이어질 수도 있다.[1][2]

4. 1. 네트워크 과부하

IRC 봇은 항상 환영받는 것은 아니다. 일부 IRC 네트워크는 봇의 사용을 금지한다. 그 이유는 네트워크에 연결된 각 별명이 모든 서버에서 동기화되는 네트워크 데이터베이스의 크기를 증가시키기 때문이다. 대규모 네트워크에서 봇을 허용하면 상당한 양의 네트워크 트래픽 오버헤드가 발생하여 자금 지원이 필요하며, 심지어 넷스플릿으로 이어질 수도 있다.[1][2]

5. 대중문화 속의 IRC 봇

바스헌터의 2006년 노래 보텐 안나는 IRC 봇으로 오해받은 여성 IRC 사용자에 관한 내용이다.[1]

참조

[1] 간행물 1324 - 2.5.1, Size IETF RFC
[2] 웹사이트 Functionality provided by systems for synchronous conferencing: 1.2.1 Growth https://psyc.eu/sync[...] 2003-07-17



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com