วิธีพัฒนา IRC Bot: 12 ขั้นตอน (พร้อมรูปภาพ)

สารบัญ:

วิธีพัฒนา IRC Bot: 12 ขั้นตอน (พร้อมรูปภาพ)
วิธีพัฒนา IRC Bot: 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีพัฒนา IRC Bot: 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีพัฒนา IRC Bot: 12 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: วิธีเช็คว่าใครแอบใช้บัญชีGmailของคุณ และสั่งLogOutออกจากระบบ 2024, เมษายน
Anonim

หากคุณเคยใช้ Internet Relay Chat (IRC) มาก่อน คุณอาจเคยพบบอทมาก่อน บอทเป็นโปรแกรมหรือสคริปต์อิสระที่เชื่อมต่อกับเครือข่ายในลักษณะเดียวกับที่มนุษย์ทำ พวกเขาสามารถตั้งโปรแกรมให้ตอบสนองต่อคำสั่งของผู้ใช้หรือแม้แต่แชท ในคู่มือนี้ คุณจะพบตัวเลือกของคุณสำหรับการสร้างบอท IRC และวิธีการสร้างบอทจากศูนย์

ขั้นตอน

วิธีที่ 1 จาก 2: การประเมินตัวเลือก

พัฒนา IRC Bot ขั้นตอนที่ 1
พัฒนา IRC Bot ขั้นตอนที่ 1

ขั้นตอนที่ 1 พิจารณาติดตั้งสคริปต์ไคลเอ็นต์

บางครั้งคุณแค่ต้องการให้งานง่ายๆ เสร็จสิ้นและไม่ต้องการให้เป็นโปรแกรมอิสระ ในกรณีดังกล่าว คุณสามารถแนบสคริปต์กับไคลเอ็นต์ IRC ได้ นี่เป็นเรื่องปกติที่จะเกิดขึ้นกับ mIRC ซึ่งมีเอ็นจิ้นการเขียนสคริปต์ที่แข็งแกร่งและสคริปต์ที่มีอยู่มากมาย นี่เป็นตัวเลือกที่ง่ายที่สุดและขอแนะนำอย่างยิ่งหากคุณไม่มีประสบการณ์ในการเขียนโปรแกรมมากนัก สำหรับส่วนที่เหลือของคู่มือนี้ คำแนะนำจำเป็นต้องมีความรู้เกี่ยวกับการเขียนโปรแกรมคอมพิวเตอร์เพื่อปฏิบัติตาม

พัฒนา IRC Bot ขั้นตอนที่2
พัฒนา IRC Bot ขั้นตอนที่2

ขั้นตอนที่ 2 พิจารณา codebase ที่มีอยู่แล้วสำหรับบอทของคุณ

มีโอเพ่นซอร์สและโปรแกรมฟรีมากมายที่สามารถช่วยคุณตั้งค่าบอทที่คุณกำหนดเองได้อย่างรวดเร็ว ตัวอย่างหนึ่งคือ Eggdrop ซึ่งเป็นบอต IRC ที่เก่าแก่ที่สุดที่ยังคงได้รับการบำรุงรักษา

พัฒนา IRC Bot ขั้นตอนที่ 3
พัฒนา IRC Bot ขั้นตอนที่ 3

ขั้นตอนที่ 3 พิจารณาเขียนบอทของคุณเอง

สำหรับผู้ใช้ IRC ขั้นสูงและนักพัฒนาที่รู้จักภาษาการเขียนโปรแกรมอยู่แล้ว นี่เป็นตัวเลือกที่ยอดเยี่ยม คุณสามารถใช้ภาษาใดก็ได้ที่คุณต้องการตราบเท่าที่มีการสนับสนุนซ็อกเก็ต แต่ภาษาที่นิยมใช้ ได้แก่ Python, Lua, PHP, C และ Perl หากคุณไม่รู้สิ่งเหล่านี้ แต่รู้ภาษาอื่น นั่นก็ไม่ใช่ปัญหา คุณสามารถหาตัวอย่างบนเว็บในภาษาใดก็ได้ที่คุณต้องการ สำหรับบทความนี้ เราจะสาธิตการใช้ PHP ในการใช้ PHP คุณจะต้องติดตั้ง PHP-CLI บนคอมพิวเตอร์หรือเซิร์ฟเวอร์ของคุณ

  • สามารถดาวน์โหลด PHP ได้จาก php.net
  • สคริปต์ PHP สามารถดำเนินการได้จากบรรทัดคำสั่ง สำหรับข้อมูลเพิ่มเติมและความช่วยเหลือในการใช้ PHP โปรดดูที่หน้าคู่มือ PHP นี้

วิธีที่ 2 จาก 2: การพัฒนา Bot ของคุณเอง

พัฒนา IRC Bot ขั้นตอนที่4
พัฒนา IRC Bot ขั้นตอนที่4

ขั้นตอนที่ 1 รวบรวมรายละเอียดการเชื่อมต่อ

คุณจะต้องได้รับข้อมูลต่อไปนี้เพื่อเชื่อมต่อกับเครือข่ายได้สำเร็จ

  • เซิร์ฟเวอร์: ชื่อโดเมนของเซิร์ฟเวอร์ที่ใช้เชื่อมต่อกับ IRC เช่น

    chat.freenode.net

  • ท่าเรือ: ในกรณีส่วนใหญ่ นี่คือ 6667 แต่ถ้าคุณไม่แน่ใจ ให้ตรวจสอบไคลเอ็นต์ IRC ของคุณเองหรือเว็บไซต์ของเครือข่าย
  • ชื่อเล่น: ชื่อเล่นที่บอทของคุณควรใช้ โปรดทราบว่าปกติแล้วไม่อนุญาตให้ใช้อักขระพิเศษบางตัว (@#!~)
  • ตัวตน: ฟิลด์ ident จะปรากฏหลังชื่อเล่นเมื่อมีคนดำเนินการ WHOIS ดังนี้:

    ชื่อเล่น!ident@ชื่อโฮสต์

  • GECOS: ฟิลด์นี้โดยทั่วไปจะมีชื่อจริงของผู้ใช้หรือคำอธิบายทั่วไปของบอท แต่คุณสามารถใส่อะไรก็ได้ที่คุณต้องการ
  • ช่อง: โดยปกติคุณต้องการให้บอทของคุณปรากฏในช่องทางหนึ่งหรือหลายช่อง ในเครือข่ายส่วนใหญ่ สิ่งเหล่านี้จะขึ้นต้นด้วย '#' แต่อาจเป็นอย่างอื่น
พัฒนา IRC Bot ขั้นตอนที่ 5
พัฒนา IRC Bot ขั้นตอนที่ 5

ขั้นตอนที่ 2 เริ่มต้นการกำหนดค่าในสคริปต์ของคุณ

วิธีพื้นฐานที่สุดในการทำเช่นนี้คือการตั้งชื่อตัวแปรสองสามตัวตามชื่อการกำหนดค่าด้านบน คุณยังสามารถจัดเก็บไว้ในไฟล์ปรับแต่งและแยกวิเคราะห์มันได้ แต่สำหรับตอนนี้ เราจะยังคงใช้สิ่งจำเป็นเท่านั้น

พัฒนา IRC Bot ขั้นตอนที่6
พัฒนา IRC Bot ขั้นตอนที่6

ขั้นตอนที่ 3 เชื่อมต่อกับเครือข่าย

ในการดำเนินการนี้ คุณจะต้องเปิดซ็อกเก็ตไปยังเซิร์ฟเวอร์บนพอร์ตที่ระบุ คุณควรเพิ่มรหัสการจัดการข้อผิดพลาดในส่วนนี้ด้วยในกรณีที่การเชื่อมต่อล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม ในกรณีนี้ PHP มีฟังก์ชันที่เรียบร้อยเพื่อจัดการกับข้อผิดพลาดอย่างมีประสิทธิภาพ

พัฒนา IRC Bot ขั้นตอนที่7
พัฒนา IRC Bot ขั้นตอนที่7

ขั้นตอนที่ 4 ลงทะเบียนบอทของคุณ

นี่หมายถึงการส่งชื่อเล่น ข้อมูลประจำตัว และ GECOS ของคุณไปยังเซิร์ฟเวอร์ ไม่ใช่การลงทะเบียนกับ NickServ ในการดำเนินการนี้ เพียงเขียนคำสั่ง NICK และ USER ไปยังเซิร์ฟเวอร์ ตามด้วยขึ้นบรรทัดใหม่ มีความจำเป็นที่คุณจะต้องทำตามที่แสดงไว้ทุกประการ เพราะนั่นคือวิธีการที่ระบุไว้ใน RFC1459 ซึ่งเป็นข้อกำหนดสำหรับโปรโตคอล IRC

โปรดทราบว่าต้องระบุพารามิเตอร์สองตัวตรงกลาง (ในกรณีนี้คือ * และ 8) แต่เซิร์ฟเวอร์จะละเว้น ทั้งสองใช้เฉพาะระหว่างเซิร์ฟเวอร์ที่เชื่อมโยง ไม่ใช่โดยไคลเอ็นต์ที่เชื่อมต่อโดยตรง

พัฒนา IRC Bot ขั้นตอนที่8
พัฒนา IRC Bot ขั้นตอนที่8

ขั้นตอนที่ 5. ดึงข้อมูลจากซ็อกเก็ตโดยใช้ลูป

หากคุณไม่ได้ใช้การวนซ้ำ สคริปต์ของคุณจะหยุดทำงานทันทีและบ็อตจะไม่มีประโยชน์โดยทั่วไป หากต้องการเชื่อมต่อ คุณต้องดึงข้อมูลจากเซิร์ฟเวอร์ ตรวจสอบอินพุตใดๆ ในสตรีมที่คุณต้องการ และตอบกลับหากเป็นเช่นนั้น ที่นี่ เรากำลังดึงข้อมูลโดยใช้ socket_read() เพื่อดึงข้อมูลที่มีให้เรา หากมี เราจะทำสิ่งใดก็ตามที่อยู่ในวงต่อไป การส่งออกข้อมูลดิบไปยังคอนโซลอาจเป็นประโยชน์ เพื่อให้คุณเห็นว่าเกิดอะไรขึ้นจากมุมมองของบอท

พัฒนา IRC Bot ขั้นตอนที่ 9
พัฒนา IRC Bot ขั้นตอนที่ 9

ขั้นตอนที่ 6 เขียนตัวจัดการ ping

นี้เป็นสิ่งสำคัญ. หากคุณไม่ตอบสนองต่อ ping ในเวลาที่เหมาะสม เซิร์ฟเวอร์จะตัดการเชื่อมต่อคุณ มาจัดการเรื่องนั้นกันก่อน Ping มีลักษณะเช่นนี้เมื่อส่งจากเซิร์ฟเวอร์:

PING:rajaniemi.freenode.net

. เซิร์ฟเวอร์ไม่ต้องใส่ชื่อหลัง ':' เซิร์ฟเวอร์สามารถจัดหาอะไรก็ได้ตามต้องการ คุณ *ต้อง* พูดซ้ำตามที่เซิร์ฟเวอร์พูด ยกเว้นใช้ PONG

พัฒนา IRC Bot ขั้นตอนที่ 10
พัฒนา IRC Bot ขั้นตอนที่ 10

ขั้นตอนที่ 7 เข้าร่วมช่องของคุณ

โอเค เรามีบอทที่เชื่อมต่อกับเครือข่ายและตอบสนองต่อการปิง แต่ไม่ทำอะไรเลย เพื่อให้คนอื่นเห็นและใช้บอทของคุณ บอทควรอยู่ในแชนเนล (ไม่เช่นนั้นคุณจะต้องบอกให้บอทตอบกลับข้อความส่วนตัว)

  • ในการทำเช่นนี้ เราจะตรวจสอบรหัสสถานะเซิร์ฟเวอร์ 376 หรือ 422 376 หมายถึง MOTD (ข้อความประจำวัน) เสร็จสิ้น 422 หมายความว่าไม่มี MOTD ใดที่จะส่ง MOTD นั้นเป็นเพียงสิ่งที่เซิร์ฟเวอร์ส่งเมื่อคุณเชื่อมต่อ แต่เป็นตัวบ่งชี้ที่ดีว่าเมื่อใดที่เราสามารถเริ่มเข้าร่วมช่องได้
  • คุณจะต้องออกคำสั่ง JOIN คำสั่งนี้สามารถตามด้วยช่องสัญญาณตั้งแต่หนึ่งช่องขึ้นไปโดยคั่นด้วยเครื่องหมายจุลภาค
  • ขอให้สังเกตว่าข้อมูลที่เซิร์ฟเวอร์ส่งจะถูกคั่นด้วยช่องว่างอย่างสะดวก วิธีนี้ทำให้เราสามารถแยกข้อมูลและอ้างอิงโดยใช้ดัชนีอาร์เรย์
พัฒนา IRC Bot ขั้นตอนที่ 11
พัฒนา IRC Bot ขั้นตอนที่ 11

ขั้นตอนที่ 8 ตอบกลับข้อความของช่อง

ตอนนี้สำหรับส่วนที่สนุก บอทของคุณเข้าร่วมช่องแล้ว ดังนั้นคุณจึงใช้ช่องดังกล่าวได้ตามต้องการ มาสร้างตัวอย่างคำสั่งที่ชื่อว่า @moo

  • สังเกตออฟเซ็ตที่ข้อความเริ่มต้น (ใช้ได้กับทั้งแชนเนลและข้อความส่วนตัว) อยู่ในที่เดียวกันเสมอ
  • คุณสามารถจัดการกับคำสั่งที่มีช่องว่างในคำสั่งเหล่านั้นได้โดยการประกบข้อมูลที่แยกเป็นชิ้นๆ เข้าด้วยกัน ($d) นั่นอยู่นอกเหนือขอบเขตของบทความนี้
  • หากเป้าหมายเป็นช่องสัญญาณ (เช่น #botters-test) คุณตอบกลับไปที่นั้น หากเป็นข้อความส่วนตัว บิตนี้จะเป็นชื่อเล่นบอทของคุณ! จากนั้นคุณต้องตอบกลับโดยใช้ชื่อเล่นของผู้ส่ง ไม่ใช่ของคุณ (ไม่เช่นนั้นคุณจะพูดกับตัวเองและนั่นก็ไร้สาระ)
พัฒนา IRC Bot ขั้นตอนที่ 12
พัฒนา IRC Bot ขั้นตอนที่ 12

ขั้นตอนที่ 9 ขยายบอทของคุณ

คุณสามารถเพิ่มคุณสมบัติใหม่มากมายโดยใช้การใช้งานข้างต้น มีคำสั่งอื่นๆ มากมายที่สามารถใช้กับเครือข่าย IRC ได้ เช่น การจัดการปฏิบัติการ การเตะและการแบน การตั้งหัวข้อ และอื่นๆ อีกมากมาย

เคล็ดลับ

  • คุณสามารถสร้างผลลัพธ์ของคำสั่ง "/me" โดยนำหน้าข้อความของคุณดังนี้:

    • PRIVMSG #channel:\001ACTION ข้อความที่นี่\001
    • 001 หมายถึงอักขระ ASCII 1 และจะถูกตีความในลักษณะดังกล่าวในสตริง PHP ที่มีเครื่องหมายอัญประกาศคู่ หรือคุณสามารถใช้

      chr(1)

    • นอกสตริง
  • สามารถผลิตสีได้ในข้อความโดยนำหน้า "\003" (รหัส ASCII 3) ตามด้วยตัวเลขสำหรับสี 0 = ขาว 1 = ดำ 2 = น้ำเงิน 3 = เขียว 4 = แดง […] ดูหน้า mIRC สำหรับสีเพิ่มเติม
  • ตามมารยาท โปรดได้รับความยินยอมจากเจ้าของช่องและผู้ให้บริการ IRC ก่อนนำบอทของคุณเข้าสู่โลกออนไลน์ ไม่ใช่ทุกเครือข่ายและทุกช่องทางที่มีนโยบายต้อนรับบอท แม้แต่บอทที่มีมารยาทดี
  • IRC daemons บางตัวมีมากกว่าข้อกำหนดของโปรโตคอลและใช้คุณสมบัติอื่นๆ หากคุณกำลังเตรียมการสำหรับเครือข่ายเฉพาะ คุณสามารถใช้คุณสมบัติเหล่านั้นได้อย่างแน่นอนหากคุณทราบเกี่ยวกับโปรโตคอลของพวกมัน อย่างไรก็ตาม หากคุณต้องการให้บอทของคุณถูกปรับใช้ในหลายเครือข่าย ให้พยายามเก็บไว้ใน RFC

แนะนำ: