วิธีการพัฒนา IRC Bot

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



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

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

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

  1. หนึ่ง รวบรวมรายละเอียดการเชื่อมต่อ คุณจะต้องได้รับข้อมูลต่อไปนี้เพื่อเชื่อมต่อกับเครือข่ายได้สำเร็จ
    • เซิร์ฟเวอร์ : ชื่อโดเมนของเซิร์ฟเวอร์ที่ใช้เชื่อมต่อกับ IRC เช่น chat.freenode.net
    • ท่าเรือ : ในกรณีส่วนใหญ่นี่คือ 6667 แต่ถ้าคุณไม่แน่ใจให้ตรวจสอบไคลเอนต์ IRC ของคุณเองหรือเว็บไซต์ของเครือข่าย
    • ชื่อเล่น : ชื่อเล่นที่บอทของคุณควรใช้ โปรดทราบว่าโดยปกติแล้วไม่อนุญาตให้ใช้อักขระพิเศษบางตัว (@ #! ~)
    • ระบุ : ช่องระบุจะปรากฏหลังชื่อเล่นเมื่อมีคนดำเนินการ WHOIS ดังนี้: nickname!ident@hostname
    • GECOS : โดยทั่วไปช่องนี้จะมีชื่อจริงของผู้ใช้หรือคำอธิบายทั่วไปของบอท แต่คุณสามารถใส่อะไรก็ได้ที่ต้องการ
    • ช่อง : โดยปกติคุณต้องการให้บอทของคุณปรากฏในช่องทางอย่างน้อยหนึ่งช่อง ในเครือข่ายส่วนใหญ่จะขึ้นต้นด้วย '#' แต่อาจเป็นอย่างอื่น
  2. 2 เริ่มต้นการกำหนดค่าในสคริปต์ของคุณ วิธีพื้นฐานที่สุดในการทำเช่นนี้คือการตั้งชื่อตัวแปรสองสามตัวตามชื่อการกำหนดค่าด้านบน คุณยังสามารถจัดเก็บไว้ในไฟล์กำหนดค่าและแยกวิเคราะห์ออกได้ แต่สำหรับตอนนี้เราจะยึดติดกับความจำเป็นอย่างแท้จริง
  3. 3 เชื่อมต่อกับเครือข่าย ในการดำเนินการนี้คุณจะต้องเปิดซ็อกเก็ตไปยังเซิร์ฟเวอร์บนพอร์ตที่ระบุ นอกจากนี้คุณควรเพิ่มรหัสการจัดการข้อผิดพลาดในส่วนนี้ในกรณีที่การเชื่อมต่อล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม ในกรณีนี้ PHP มีฟังก์ชันที่เป็นระเบียบเพื่อจัดการกับข้อผิดพลาดอย่างมีประสิทธิภาพ
  4. 4 ลงทะเบียนบอทของคุณ ซึ่งหมายถึงการส่งชื่อเล่นรหัสประจำตัวและ GECOS ของคุณไปยังเซิร์ฟเวอร์ ไม่ ลงทะเบียนกับ NickServ ในการดำเนินการนี้เพียงแค่เขียนคำสั่ง NICK และ USER ไปยังเซิร์ฟเวอร์ตามด้วยการคืนค่าขนส่งและขึ้นบรรทัดใหม่ มีความจำเป็นที่คุณจะต้องทำตามที่แสดงไว้อย่างชัดเจนเนื่องจากเป็นวิธีที่ระบุไว้ใน RFC1459 ซึ่งเป็นข้อกำหนดสำหรับโปรโตคอล IRC
    • โปรดทราบว่าต้องระบุพารามิเตอร์สองตัวตรงกลาง (ในกรณีนี้คือ * และ 8) แต่เซิร์ฟเวอร์จะเพิกเฉย ทั้งสองใช้ระหว่างเซิร์ฟเวอร์ที่เชื่อมโยงเท่านั้นไม่ใช่โดยไคลเอนต์ที่เชื่อมต่อโดยตรง
  5. 5 ดึงข้อมูลจากซ็อกเก็ตโดยใช้ลูป หากคุณไม่ได้ใช้การวนซ้ำสคริปต์ของคุณจะยุติทันทีและบอทจะไร้ประโยชน์โดยทั่วไป ในการเชื่อมต่อคุณต้องดึงข้อมูลจากเซิร์ฟเวอร์ตรวจสอบอินพุตใด ๆ ในสตรีมที่คุณต้องการและตอบสนองหากเป็นเช่นนั้น ที่นี่เรากำลังดึงข้อมูลโดยใช้ socket_read () เพื่อดึงข้อมูลใด ๆ ที่มีให้เรา ถ้ามีเราจะทำทุกอย่างที่เป็นห่วง อาจเป็นประโยชน์ในการส่งออกข้อมูลดิบไปยังคอนโซลเพื่อให้คุณเห็นสิ่งที่เกิดขึ้นจากมุมมองของบอท
  6. 6 เขียนตัวจัดการ ping นี้เป็นสิ่งสำคัญ. หากคุณไม่ตอบสนองต่อการ Ping ในเวลาที่เหมาะสมเซิร์ฟเวอร์จะตัดการเชื่อมต่อกับคุณ มาดูแลกันก่อนดีกว่า ปิงจะมีลักษณะเช่นนี้เมื่อส่งจากเซิร์ฟเวอร์: PING :rajaniemi.freenode.net. เซิร์ฟเวอร์ไม่จำเป็นต้องใส่ชื่อหลัง ':' แต่ก็สามารถจัดหาสิ่งที่ต้องการได้ คุณ * ต้อง * ตอบกลับสิ่งที่เซิร์ฟเวอร์พูดทุกประการยกเว้นการใช้ PONG
  7. 7 เข้าร่วมช่องของคุณ โอเคเรามีบอทที่เชื่อมต่อกับเครือข่ายและตอบสนองต่อการ Ping แต่อย่างอื่นไม่ทำอะไรเลย เพื่อให้ผู้อื่นเห็นและใช้บอทของคุณควรอยู่ในช่อง (มิฉะนั้นคุณต้องบอกให้ตอบกลับข้อความส่วนตัว)
    • ในการดำเนินการนี้เราจะตรวจสอบรหัสสถานะเซิร์ฟเวอร์ 376 หรือ 422 376 หมายถึง MOTD (ข้อความประจำวัน) เสร็จสิ้น 422 หมายความว่าไม่มี MOTD ใด ๆ ให้ส่ง MOTD นั้นเป็นเพียงสิ่งที่เซิร์ฟเวอร์ส่งเมื่อคุณเชื่อมต่อ แต่เป็นตัวบ่งชี้ที่ดีว่าเราสามารถเริ่มเข้าร่วมช่องได้เมื่อใด
    • คุณจะต้องออกคำสั่ง JOIN คำสั่งนี้สามารถตามด้วยช่องสัญญาณอย่างน้อยหนึ่งช่องโดยคั่นด้วยเครื่องหมายจุลภาค
    • โปรดสังเกตว่าข้อมูลที่เซิร์ฟเวอร์ส่งถูกคั่นด้วยช่องว่างอย่างสะดวก วิธีนี้เราสามารถแยกข้อมูลและอ้างอิงโดยใช้ดัชนีอาร์เรย์
  8. 8 ตอบกลับข้อความของช่อง ตอนนี้สำหรับส่วนที่สนุก บอทของคุณเข้าร่วมช่องแล้วตอนนี้คุณสามารถใช้มันในสิ่งที่คุณต้องการได้ มาสร้างคำสั่งตัวอย่างชื่อ @moo
    • สังเกตการชดเชยที่ข้อความเริ่มต้น (ใช้กับทั้งช่องทางและข้อความส่วนตัว) มันอยู่ที่เดิมเสมอ
    • คุณสามารถจัดการกับคำสั่งที่มีช่องว่างได้โดยการต่อข้อมูลที่เป็นกลุ่มกลับเข้าด้วยกัน ($ d) ซึ่งอยู่นอกเหนือขอบเขตของบทความนี้
    • หากเป้าหมายเป็นช่องทาง (เช่น # Botters-test) คุณจะตอบกลับสิ่งนั้น ถ้าเป็นข้อความส่วนตัวบิตนี้จะเป็นชื่อเล่นของบอท! จากนั้นคุณต้องตอบกลับโดยใช้ชื่อเล่นของผู้ส่งไม่ใช่ของคุณ (มิฉะนั้นคุณกำลังพูดกับตัวเองและนั่นเป็นเรื่องโง่เขลา)
  9. 9 ขยายบอทของคุณ คุณสามารถเพิ่มคุณสมบัติใหม่ ๆ ได้โดยใช้การใช้งานข้างต้น มีคำสั่งอื่น ๆ อีกมากมายที่สามารถออกให้กับเครือข่าย IRC เช่นการจัดการการดำเนินการการเตะและการแบนการตั้งหัวข้อและคุณสมบัติอื่น ๆ อีกมากมาย โฆษณา

ถาม - ตอบชุมชน

ค้นหา เพิ่มคำถามใหม่
  • คำถามหลังจากเพิ่มใน notepad + แล้วฉันจะเพิ่มรหัสเหล่านี้ได้ที่ไหน? บิน 8lack วางไว้บนเว็บเซิร์ฟเวอร์ (เช่น Apache) ซึ่งรองรับ PHP คุณสามารถติดตั้ง XXAMP บนเครื่องคอมพิวเตอร์ของคุณหรือโฮสต์ไว้บนเว็บเซิร์ฟเวอร์อับละอองเรณู
ถามคำถามเหลือ 200 อักขระรวมที่อยู่อีเมลของคุณเพื่อรับข้อความเมื่อคำถามนี้ได้รับคำตอบ ส่ง
โฆษณา

เคล็ดลับ

  • คุณสามารถสร้างผลลัพธ์ของคำสั่ง '/ me' โดยนำหน้าข้อความของคุณดังนี้:
    • PRIVMSG #channel: 001 ข้อความ ACTION ที่นี่ 001 .
    • 001 หมายถึงอักขระ ASCII 1 และจะถูกตีความในสตริง PHP ที่ยกมาสองครั้ง หรือคุณสามารถใช้ chr(1) นอกสตริง
  • สามารถสร้างสีในข้อความได้โดยใช้คำนำหน้า ' 003' (รหัส ASCII 3) ตามด้วยตัวเลขสำหรับสี 0 = ขาว 1 = ดำ 2 = น้ำเงิน 3 = เขียว 4 = แดง [... ] ดู mIRC หน้าสำหรับสีเพิ่มเติม
  • ขอความยินยอมจากเจ้าของช่องและผู้ให้บริการ IRC ก่อนนำบอทของคุณออนไลน์ ไม่ใช่ทุกเครือข่ายและช่องทางที่มีนโยบายต้อนรับบอทแม้แต่คนที่ประพฤติตัวดี
  • IRC daemons บางตัวทำเกินกว่าข้อกำหนดของโปรโตคอลและใช้คุณสมบัติอื่น ๆ หากคุณกำลังใช้มันสำหรับเครือข่ายเฉพาะคุณสามารถใช้ประโยชน์จากคุณสมบัติเหล่านั้นได้อย่างแน่นอนหากคุณรู้เกี่ยวกับโปรโตคอลของพวกเขา อย่างไรก็ตามหากคุณต้องการให้บอทของคุณใช้งานได้บนเครือข่ายหลาย ๆ เครือข่ายให้พยายามทำให้บอทของคุณมีอะไรอยู่ใน RFC

การโฆษณาส่งเคล็ดลับการส่งเคล็ดลับทั้งหมดจะได้รับการตรวจสอบอย่างรอบคอบก่อนที่จะเผยแพร่ขอขอบคุณที่ส่งเคล็ดลับเพื่อตรวจสอบ!

ประเด็นที่เป็นที่นิยม

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

อดีตผู้เล่นแมรี คาริลโลเชื่อว่าการสูญเสียเวลาหนึ่งปีอาจมีราคาแพงสำหรับโรเจอร์เฟเดอเรอร์เมื่อสิ้นสุดอาชีพการงานของเขา Carillo ชี้ให้เห็นว่าเป้าหมายคู่ของ Federer ในการชนะ Wimbledon และ Olympic gold ได้ถูกระงับไว้ในขณะนี้

ราฟาเอล นาดาลเอาชนะคาเมรอน นอร์รีจากบริเตนใหญ่อย่างตรงไปตรงมาเมื่อวันศุกร์ โดยชนะ 6-1, 6-4 เพื่อเข้ารอบ 4 ทีมสุดท้ายที่บาร์เซโลน่า

วิธีการแอบเล่นวิดีโอเกมเมื่อคุณติดดิน ในที่สุดมันเกิดขึ้นกับทุกคน - คุณถูกจับได้ว่าคุยโทรศัพท์ตอนที่คุณควรจะหลับหรือคุณได้เกรดต่ำกว่าดาวเด่นในการทดสอบคณิตศาสตร์ของคุณและนั่นแหล่ะ คุณ ...

Venus (L) และ Serena Williams London, 19 มิถุนายน (IANS): สองพี่น้องของ Williams – Venus และ Serena – ครองตำแหน่งหญิงในวิมเบิลดัน

Florida Gators เข้าสู่ปี 2019 ในฐานะทีม 10 อันดับแรก นี่คือวิธีดูเกมฟุตบอลฟลอริดาแบบสดออนไลน์โดยไม่ต้องใช้สายเคเบิล