როგორ განვავითაროთ IRC ბოტი: 12 ნაბიჯი (სურათებით)

Სარჩევი:

როგორ განვავითაროთ IRC ბოტი: 12 ნაბიჯი (სურათებით)
როგორ განვავითაროთ IRC ბოტი: 12 ნაბიჯი (სურათებით)

ვიდეო: როგორ განვავითაროთ IRC ბოტი: 12 ნაბიჯი (სურათებით)

ვიდეო: როგორ განვავითაროთ IRC ბოტი: 12 ნაბიჯი (სურათებით)
ვიდეო: DLO 26 myLife Accessing your myLife Email account 2024, აპრილი
Anonim

თუ თქვენ ყოფილხართ ინტერნეტ სარელეო ჩატში (IRC), დიდი ალბათობით თქვენ შეხვდით ბოტს რაღაც მომენტში. ბოტები არის დამოუკიდებელი პროგრამები ან სკრიპტები, რომლებიც დაკავშირებულია ქსელთან ისე, როგორც ამას ადამიანი აკეთებდა. მათი დაპროგრამება შესაძლებელია იმისათვის, რომ უპასუხოს მომხმარებლის ბრძანებებს ან თუნდაც ჩატი. ამ სახელმძღვანელოში შეგიძლიათ იპოვოთ რა არის თქვენი ვარიანტი IRC ბოტის შესაქმნელად, ასევე როგორ ავაშენოთ ის ნულიდან.

ნაბიჯები

მეთოდი 1 დან 2: ვარიანტების შეფასება

შეიმუშავეთ IRC ბოტი ნაბიჯი 1
შეიმუშავეთ IRC ბოტი ნაბიჯი 1

ნაბიჯი 1. განვიხილოთ კლიენტის სკრიპტის დაყენება

ზოგჯერ თქვენ უბრალოდ გსურთ მარტივი დავალების შესრულება და არ გინდათ რომ ეს იყოს დამოუკიდებელი პროგრამა. ამ შემთხვევაში, თქვენ შეგიძლიათ მიამაგროთ სკრიპტი IRC კლიენტს. ეს საკმაოდ გავრცელებულია mIRC– სთან, რომელსაც აქვს მძლავრი სკრიპტირების ძრავა და ხელმისაწვდომი სკრიპტების ფართო სპექტრი. ეს არის უმარტივესი ვარიანტი და რეკომენდირებულია, თუ არ გაქვთ პროგრამირების დიდი გამოცდილება. დანარჩენი ამ სახელმძღვანელოსთვის, ინსტრუქციები მოითხოვს კომპიუტერული პროგრამირების გარკვეულ ცოდნას.

შეიმუშავეთ IRC ბოტი ნაბიჯი 2
შეიმუშავეთ IRC ბოტი ნაბიჯი 2

ნაბიჯი 2. განვიხილოთ თქვენი ბოტისთვის უკვე არსებული კოდის ბაზა

არსებობს მრავალი ღია წყარო და უფასო პროგრამა, რომელიც დაგეხმარებათ სწრაფად შექმნათ თქვენი პერსონალური ბოტი. ერთი ასეთი მაგალითია Eggdrop, უძველესი IRC ბოტი, რომელიც ჯერ კიდევ შენარჩუნებულია.

შეიმუშავეთ IRC ბოტი ნაბიჯი 3
შეიმუშავეთ IRC ბოტი ნაბიჯი 3

ნაბიჯი 3. განვიხილოთ საკუთარი ბოტის დაწერა

მოწინავე IRC მომხმარებლებისთვის და დეველოპერებისთვის, რომლებმაც უკვე იციან თავიანთი გზა პროგრამირების ენაზე, ეს შესანიშნავი ვარიანტია. თქვენ შეგიძლიათ გამოიყენოთ თითქმის ნებისმიერი ენა, რამდენადაც მას აქვს სოკეტის მხარდაჭერა, მაგრამ პოპულარული ენები მოიცავს Python, Lua, PHP, C და Perl. თუ თქვენ არ იცით რომელიმე მათგანი, მაგრამ იცით სხვა ენა, ეს არ არის პრობლემა. თქვენ ჩვეულებრივ შეგიძლიათ იპოვოთ მაგალითები ინტერნეტში თქვენთვის სასურველ ნებისმიერ ენაზე. ამ სტატიისთვის ჩვენ ვაჩვენებთ PHP– ის გამოყენებას. PHP– ის გამოსაყენებლად, თქვენ უნდა გქონდეთ დაინსტალირებული PHP-CLI თქვენს კომპიუტერზე ან სერვერზე.

  • PHP შეგიძლიათ ჩამოტვირთოთ php.net– დან
  • PHP სკრიპტების შესრულება შესაძლებელია ბრძანების სტრიქონიდან. დამატებითი ინფორმაციისთვის და PHP– ის გამოყენებისათვის იხილეთ ეს PHP სახელმძღვანელო გვერდი.

მეთოდი 2 დან 2: საკუთარი ბოტის განვითარება

შეიმუშავეთ IRC ბოტი ნაბიჯი 4
შეიმუშავეთ IRC ბოტი ნაბიჯი 4

ნაბიჯი 1. შეაგროვეთ კავშირის დეტალები

ქსელში წარმატებით დასაკავშირებლად თქვენ უნდა მიიღოთ შემდეგი ინფორმაცია.

  • სერვერი: სერვერის დომენის სახელი, რომელიც გამოიყენება IRC– ს დასაკავშირებლად, მაგ

    chat.freenode.net

  • პორტი: უმეტეს შემთხვევაში, ეს არის 6667, მაგრამ თუ დარწმუნებული არ ხართ, შეამოწმეთ თქვენი IRC კლიენტი ან ქსელის ვებ გვერდი.
  • მეტსახელი: მეტსახელი თქვენ ბოტმა უნდა გამოიყენოს. გაითვალისწინეთ, რომ ზოგიერთი სპეციალური სიმბოლო ჩვეულებრივ დაუშვებელია (@#! ~).
  • იდენტიფიკაცია: იდენტური ველი ჩნდება მეტსახელის შემდეგ, როდესაც ვინმე ასრულებს WHOIS- ს:

    მეტსახელი! ident@hostname

  • GECOS: ეს ველი, როგორც წესი, შეიცავს მომხმარებლის ნამდვილ სახელს ან ბოტის ზოგად აღწერას, მაგრამ თქვენ შეგიძლიათ განათავსოთ რაც გსურთ იქ.
  • არხი: თქვენ ჩვეულებრივ გინდათ რომ თქვენი ბოტი იყოს ერთ ან მეტ არხზე. უმეტეს ქსელში ეს არის##', მაგრამ შეიძლება სხვა რამ იყოს.
შეიმუშავეთ IRC ბოტი ნაბიჯი 5
შეიმუშავეთ IRC ბოტი ნაბიჯი 5

ნაბიჯი 2. კონფიგურაციის ინიციალიზაცია თქვენს სკრიპტში

ამის ყველაზე ძირითადი გზა არის რამდენიმე ცვლადის დასახელება ზემოთ კონფიგურაციის სახელების მიხედვით. თქვენ ასევე შეგიძლიათ შეინახოთ ისინი კონფიგურაციის ფაილში და გაანალიზოთ ისინი, მაგრამ ჯერჯერობით ჩვენ უბრალოდ დავრჩებით აბსოლუტურ აუცილებლობაზე.

შეიმუშავეთ IRC ბოტი ნაბიჯი 6
შეიმუშავეთ IRC ბოტი ნაბიჯი 6

ნაბიჯი 3. დაკავშირება ქსელში

ამისათვის თქვენ უნდა გახსნათ სოკეტი სერვერზე მითითებულ პორტში. თქვენ ასევე უნდა დაამატოთ შეცდომების დამუშავების კოდი ამ ნაწილში იმ შემთხვევაში, თუ კავშირი რაიმე მიზეზით ვერ ხერხდება. ამ შემთხვევაში, PHP გვთავაზობს გარკვეულ ფუნქციებს შეცდომების ეფექტურად გადასაჭრელად.

შეიმუშავეთ IRC ბოტი ნაბიჯი 7
შეიმუშავეთ IRC ბოტი ნაბიჯი 7

ნაბიჯი 4. დაარეგისტრირეთ თქვენი ბოტი

ეს ნიშნავს სერვერზე თქვენი მეტსახელის, იდენტობის და GECOS- ის მიწოდებას და არა NickServ– ით დარეგისტრირებას. ამისათვის უბრალოდ ჩაწერეთ NICK და USER ბრძანებები სერვერზე, რასაც მოჰყვება ვაგონის დაბრუნება და ახალი ხაზი. აუცილებელია ამის გაკეთება ზუსტად ისე, როგორც ნაჩვენებია, რადგან ასე არის მითითებული RFC1459- ში, IRC პროტოკოლის სპეციფიკაციაში.

გაითვალისწინეთ, რომ შუა ორი პარამეტრი (ამ შემთხვევაში * და 8) უნდა იყოს მითითებული, მაგრამ ისინი იგნორირებულია სერვერის მიერ. ეს ორი გამოიყენება მხოლოდ დაკავშირებულ სერვერებს შორის და არა უშუალოდ კლიენტის მიერ

შეიმუშავეთ IRC ბოტი ნაბიჯი 8
შეიმუშავეთ IRC ბოტი ნაბიჯი 8

ნაბიჯი 5. განაგრძეთ მონაცემების ამოღება სოკეტიდან მარყუჟის გამოყენებით

თუ თქვენ არ იყენებთ მარყუჟს, თქვენი სკრიპტი დაუყოვნებლივ დასრულდება და ბოტი ძირითადად უსარგებლო იქნება. იმისათვის, რომ დარჩეთ დაკავშირებული, თქვენ უნდა მოიტანოთ მონაცემები სერვერიდან, შეამოწმოთ თქვენთვის სასურველი ნაკადის ნებისმიერი შეყვანა და თუ ასეა, უპასუხეთ მას. აქ, ჩვენ ვიღებთ მონაცემებს socket_read () - ისთვის, რომ ავიღოთ ჩვენთვის ხელმისაწვდომი ნებისმიერი მონაცემი. თუ არსებობს, ჩვენ ვაგრძელებთ იმას, რაც მარყუჟშია. ასევე შეიძლება სასარგებლო იყოს ნედლეული მონაცემების კონსოლზე გამოტანა, ასე რომ თქვენ ხედავთ რა ხდება ბოტის პერსპექტივიდან.

შეიმუშავეთ IRC ბოტი ნაბიჯი 9
შეიმუშავეთ IRC ბოტი ნაბიჯი 9

ნაბიჯი 6. დაწერეთ პინგ დამმუშავებელი

Ეს მნიშვნელოვანია. თუ დროულად არ უპასუხებთ პინგებს, სერვერი გათიშავს თქვენ. მოდით ვიზრუნოთ ამაზე პირველ რიგში. პინგები ასე გამოიყურება სერვერიდან გაგზავნისას:

PING: rajaniemi.freenode.net

რა სერვერს არ აქვს აუცილებელი სახელი დაასახელოს ':' - ის შემდეგ, მას შეუძლია მიაწოდოს რაც უნდა. თქვენ * უნდა * გაიმეოროთ ზუსტად ის, რაც თქვა სერვერმა, გარდა PONG– ის გამოყენების.

შეიმუშავეთ IRC ბოტი ნაბიჯი 10
შეიმუშავეთ IRC ბოტი ნაბიჯი 10

ნაბიჯი 7. შეუერთდით თქვენს არხებს

კარგი, ჩვენ გვაქვს ბოტი, რომელიც აკავშირებს ქსელს და პასუხობს პინგებს, მაგრამ სხვაგვარად არაფერს აკეთებს. იმისათვის, რომ ადამიანებმა ნახონ და გამოიყენონ თქვენი ბოტი, ის უნდა იყოს არხზე (წინააღმდეგ შემთხვევაში თქვენ უნდა უთხრათ მას, რომ უპასუხოს პირად შეტყობინებებს).

  • ამისათვის ჩვენ შევამოწმებთ სერვერის სტატუსის კოდებს 376 ან 422. 376 ნიშნავს MOTD (დღის შეტყობინება) დასრულებულს. 422 ნიშნავს, რომ MOTD არ იყო გასაგზავნი. ეს MOTD არის მხოლოდ ის, რასაც სერვერი აგზავნის როდესაც აკავშირებთ, მაგრამ ეს არის კარგი მაჩვენებელი, თუ როდის შეგვიძლია დავიწყოთ არხებთან შეერთება.
  • თქვენ უნდა გასცეს JOIN ბრძანება. ამ ბრძანებას შეიძლება მოჰყვეს ერთი ან მეტი არხი, რომლებიც გამოყოფილია მძიმით.
  • გაითვალისწინეთ, რომ სერვერის მიერ გაგზავნილი მონაცემები მოხერხებულად არის განსაზღვრული ფართებით. ამ გზით ჩვენ შეგვიძლია მონაცემების გაყოფა და მითითება მასივის ინდექსის გამოყენებით.
შეიმუშავეთ IRC ბოტი ნაბიჯი 11
შეიმუშავეთ IRC ბოტი ნაბიჯი 11

ნაბიჯი 8. უპასუხეთ არხის შეტყობინებებს

ახლა რაც შეეხება სახალისო ნაწილს. თქვენი ბოტი შეუერთდა არხს, ასე რომ ახლა თქვენ შეგიძლიათ გამოიყენოთ ის რაც გინდოდათ. მოდით შევქმნათ ბრძანების მაგალითი სახელწოდებით @moo.

  • გაითვალისწინეთ ოფსეტი, სადაც იწყება შეტყობინებები (ეს ეხება როგორც არხებს, ასევე პირად შეტყობინებებს). ის ყოველთვის ერთსა და იმავე ადგილზეა.
  • თქვენ შეგიძლიათ გაუმკლავდეთ ბრძანებებს, სადაც მათ აქვთ სივრცე, დაჭრილი მონაცემების ერთმანეთთან შეერთებით ($ d). ეს სცილდება ამ სტატიის ფარგლებს.
  • თუ სამიზნე არის არხი (როგორიცაა #botters-test), მაშინ თქვენ უპასუხეთ მას. თუ ეს პირადი შეტყობინებაა, ეს ბიტი იქნება თქვენი ბოტის მეტსახელი! შემდეგ თქვენ უნდა უპასუხოთ გამგზავნის მეტსახელს და არა თქვენს (წინააღმდეგ შემთხვევაში თქვენ საკუთარ თავს ესაუბრებით და ეს სულელურია).
შეიმუშავეთ IRC ბოტი ნაბიჯი 12
შეიმუშავეთ IRC ბოტი ნაბიჯი 12

ნაბიჯი 9. გააფართოვეთ თქვენი ბოტი

თქვენ შეგიძლიათ დაამატოთ ბევრი ახალი ფუნქცია ზემოაღნიშნული განხორციელების გამოყენებით. არსებობს მრავალი სხვა ბრძანება, რომელიც შეიძლება გაიცეს IRC ქსელში, როგორიცაა ოპერაციების მართვა, დარტყმა და აკრძალვა, თემის დაყენება და სხვა მრავალი ფუნქცია.

Რჩევები

  • თქვენ შეგიძლიათ გამოაქვეყნოთ "/me" ბრძანების შედეგი თქვენი შეტყობინებების ამონაწერით შემდეგნაირად:

    • PRIVMSG #არხი: / 001 აქცია ტექსტი აქ / 001.
    • 001 ნიშნავს ASCII სიმბოლოს 1 და განმარტებული იქნება როგორც ასეთი ორმაგი ციტირებული PHP სტრიქონში. ალტერნატიულად, შეგიძლიათ გამოიყენოთ

      chr (1)

    • სტრიქონის გარეთ.
  • ფერები შეიძლება წარმოიშვას შეტყობინებაში "\ 003" (ASCII კოდი 3) პრეფიქსით, რასაც მოჰყვება რიცხვი ფერისთვის. 0 = თეთრი, 1 = შავი, 2 = ლურჯი, 3 = მწვანე, 4 = წითელი […]. იხილეთ mIRC– ის გვერდი მეტი ფერისთვის.
  • თავაზიანობის მიზნით, მიიღეთ თქვენი არხის მფლობელების და IRC ოპერატორების თანხმობა თქვენი ბოტის ონლაინ შემოტანამდე. ყველა ქსელს და არხს არ აქვს მისასალმებელი პოლიტიკა ბოტების მიმართ, თუნდაც კარგად მოქცეული.
  • ზოგიერთი IRC დემონები სცდება პროტოკოლის სპეციფიკაციებს და ახორციელებს სხვა ფუნქციებს. თუ თქვენ ამზადებთ მას კონკრეტული ქსელისთვის, რა თქმა უნდა შეგიძლიათ გამოიყენოთ ეს მახასიათებლები, თუ იცით მათი პროტოკოლის შესახებ. თუ გსურთ რომ თქვენი ბოტი განლაგდეს რამდენიმე ქსელში, ეცადეთ შეინარჩუნოთ ის რაც არის RFC– ში.

გირჩევთ: