Làm thế nào để phát triển một IRC Bot: 12 bước (có hình ảnh)

Mục lục:

Làm thế nào để phát triển một IRC Bot: 12 bước (có hình ảnh)
Làm thế nào để phát triển một IRC Bot: 12 bước (có hình ảnh)

Video: Làm thế nào để phát triển một IRC Bot: 12 bước (có hình ảnh)

Video: Làm thế nào để phát triển một IRC Bot: 12 bước (có hình ảnh)
Video: Cách Lấy Lại Mật Khẩu Facebook Đã Mất trong 5 giây , không pass,Ko Email,Ko Số ĐT quá dễ 2024, Tháng tư
Anonim

Nếu bạn đã tham gia Trò chuyện chuyển tiếp qua Internet (IRC), rất có thể bạn đã gặp phải một con bot tại một thời điểm nào đó. Bots là các chương trình hoặc tập lệnh độc lập kết nối với mạng theo cách giống như con người. Chúng có thể được lập trình để phản hồi các lệnh của người dùng hoặc thậm chí là trò chuyện. Trong hướng dẫn này, bạn có thể tìm thấy các tùy chọn của mình để xây dựng một bot IRC cũng như cách tạo một bot từ đầu.

Các bước

Phương pháp 1/2: Đánh giá các tùy chọn

Phát triển một Bot IRC Bước 1
Phát triển một Bot IRC Bước 1

Bước 1. Xem xét cài đặt một kịch bản ứng dụng khách

Đôi khi bạn chỉ muốn một nhiệm vụ đơn giản được hoàn thành và không muốn nó trở thành một chương trình độc lập. Trong trường hợp đó, bạn có thể đính kèm tập lệnh vào máy khách IRC. Điều này khá phổ biến đối với mIRC, có một công cụ tạo tập lệnh mạnh mẽ và nhiều loại tập lệnh có sẵn. Đây là tùy chọn dễ dàng nhất và rất được khuyến khích nếu bạn chưa có nhiều hoặc bất kỳ kinh nghiệm lập trình nào. Đối với phần còn lại của hướng dẫn này, hướng dẫn yêu cầu một số kiến thức về lập trình máy tính để làm theo.

Phát triển một Bot IRC Bước 2
Phát triển một Bot IRC Bước 2

Bước 2. Xem xét cơ sở mã đã có từ trước cho bot của bạn

Có rất nhiều chương trình mã nguồn mở và miễn phí có thể giúp bạn thiết lập bot tùy chỉnh của riêng mình một cách nhanh chóng. Một ví dụ như vậy là Eggdrop, bot IRC lâu đời nhất vẫn đang được duy trì.

Phát triển một Bot IRC Bước 3
Phát triển một Bot IRC Bước 3

Bước 3. Cân nhắc viết bot của riêng bạn

Đối với người dùng và nhà phát triển IRC nâng cao, những người đã biết cách sử dụng ngôn ngữ lập trình, đây là một lựa chọn tuyệt vời. Bạn có thể sử dụng khá nhiều bất kỳ ngôn ngữ nào bạn muốn miễn là nó có hỗ trợ socket, nhưng những ngôn ngữ phổ biến để sử dụng bao gồm Python, Lua, PHP, C và Perl. Nếu bạn không biết bất kỳ điều gì trong số này nhưng bạn biết một ngôn ngữ khác, đó không phải là vấn đề. Bạn thường có thể tìm thấy các ví dụ trên web bằng bất kỳ ngôn ngữ nào bạn muốn. Đối với bài viết này, chúng tôi sẽ chứng minh bằng cách sử dụng PHP. Để sử dụng PHP, bạn cần cài đặt PHP-CLI trên máy tính hoặc máy chủ của mình.

  • PHP có thể được tải xuống từ php.net
  • Các tập lệnh PHP có thể được thực thi từ dòng lệnh. Để biết thêm thông tin và trợ giúp sử dụng PHP, hãy xem trang hướng dẫn sử dụng PHP này.

Phương pháp 2/2: Phát triển Bot của riêng bạn

Phát triển một Bot IRC Bước 4
Phát triển một Bot IRC Bước 4

Bước 1. Thu thập các chi tiết kết nối

Bạn sẽ cần lấy thông tin sau để kết nối thành công với mạng.

  • Người phục vụ: Tên miền của máy chủ được sử dụng để kết nối với IRC, chẳng hạn như

    chat.freenode.net

  • Hải cảng: Trong hầu hết các trường hợp, đây là 6667, nhưng nếu bạn không chắc chắn, hãy kiểm tra ứng dụng IRC của riêng bạn hoặc trang web của mạng.
  • Tên nick: Biệt hiệu mà bot của bạn nên sử dụng. Hãy nhớ rằng một số ký tự đặc biệt thường không được phép (@ #! ~).
  • Ident: Trường danh tính xuất hiện sau biệt hiệu khi ai đó thực hiện WHOIS như thế này:

    biệt danh! id @ tên máy chủ

  • GECOS: Trường này thường chứa tên thật của người dùng hoặc mô tả chung về bot nhưng bạn có thể đặt bất cứ thứ gì bạn muốn vào đó.
  • Kênh: Bạn thường muốn bot của mình hiện diện trong một hoặc nhiều kênh. Trên hầu hết các mạng, chúng có tiền tố là '#' nhưng nó có thể là một cái gì đó khác.
Phát triển một Bot IRC Bước 5
Phát triển một Bot IRC Bước 5

Bước 2. Khởi tạo cấu hình trong tập lệnh của bạn

Cách cơ bản nhất để làm điều này là đặt tên một vài biến theo tên cấu hình ở trên. Bạn cũng có thể lưu trữ chúng trong một tệp cấu hình và phân tích cú pháp, nhưng hiện tại, chúng tôi sẽ chỉ gắn bó với những thứ cần thiết tuyệt đối.

Phát triển một Bot IRC Bước 6
Phát triển một Bot IRC Bước 6

Bước 3. Kết nối mạng

Để thực hiện việc này, bạn cần mở một ổ cắm tới máy chủ trên cổng được chỉ định. Bạn cũng nên thêm một số mã xử lý lỗi trong phần này để phòng trường hợp kết nối không thành công vì bất kỳ lý do gì. Trong trường hợp này, PHP cung cấp cho chúng ta một số hàm gọn gàng để xử lý lỗi một cách hiệu quả.

Phát triển một Bot IRC Bước 7
Phát triển một Bot IRC Bước 7

Bước 4. Đăng ký bot của bạn

Điều này có nghĩa là cung cấp biệt hiệu, danh tính và GECOS của bạn cho máy chủ, không phải đăng ký với NickServ. Để thực hiện việc này, chỉ cần viết lệnh NICK và USER vào máy chủ, sau đó là ký tự xuống dòng và dòng mới. Bạn bắt buộc phải làm điều đó chính xác như được hiển thị, vì đó là cách nó được chỉ định trong RFC1459, đặc điểm kỹ thuật cho giao thức IRC.

Lưu ý rằng hai tham số ở giữa (trong trường hợp này là * và 8) phải được chỉ định, nhưng chúng bị máy chủ bỏ qua. Hai cái đó chỉ được sử dụng giữa các máy chủ được liên kết, không phải bởi một máy khách kết nối trực tiếp

Phát triển một Bot IRC Bước 8
Phát triển một Bot IRC Bước 8

Bước 5. Tiếp tục tìm nạp dữ liệu từ ổ cắm bằng cách sử dụng một vòng lặp

Nếu bạn không sử dụng vòng lặp, tập lệnh của bạn sẽ ngay lập tức kết thúc và bot về cơ bản sẽ vô dụng. Để duy trì kết nối, bạn phải tìm nạp dữ liệu từ máy chủ, kiểm tra bất kỳ đầu vào nào trong luồng bạn muốn và phản hồi dữ liệu đó nếu có. Ở đây, chúng tôi đang lấy dữ liệu bằng cách sử dụng socket_read () để lấy bất kỳ dữ liệu nào có sẵn cho chúng tôi. Nếu có, chúng tôi tiếp tục làm bất cứ điều gì trong vòng lặp. Cũng có thể hữu ích nếu xuất dữ liệu thô ra bảng điều khiển để bạn có thể thấy những gì đang diễn ra từ góc nhìn của bot.

Phát triển một Bot IRC Bước 9
Phát triển một Bot IRC Bước 9

Bước 6. Viết một trình xử lý ping

Điều này quan trọng. Nếu bạn không trả lời ping kịp thời, máy chủ sẽ ngắt kết nối với bạn. Hãy quan tâm đến điều đó trước. Ping trông như thế này khi được gửi từ máy chủ:

PING: rajaniemi.freenode.net

. Máy chủ không cần phải đặt tên của nó sau dấu ':', nó có thể cung cấp bất cứ thứ gì nó muốn. Bạn * phải * lặp lại chính xác những gì máy chủ đã nói, ngoại trừ việc sử dụng PONG.

Phát triển một Bot IRC Bước 10
Phát triển một Bot IRC Bước 10

Bước 7. Tham gia các kênh của bạn

Được rồi, chúng tôi có một bot kết nối với mạng và phản hồi các ping, nhưng nếu không thì không làm gì cả. Để mọi người nhìn thấy và sử dụng bot của bạn, bot đó phải ở trong một kênh (nếu không, bạn phải yêu cầu nó trả lời tin nhắn riêng tư).

  • Để thực hiện việc này, chúng tôi sẽ kiểm tra mã trạng thái máy chủ 376 hoặc 422. 376 có nghĩa là MOTD (thông báo trong ngày) đã hoàn thành. 422 có nghĩa là không có bất kỳ MOTD nào để gửi. MOTD đó chỉ là thứ mà máy chủ gửi khi bạn kết nối, nhưng nó là một chỉ báo tốt về thời điểm chúng ta có thể bắt đầu tham gia các kênh.
  • Bạn sẽ cần đưa ra lệnh JOIN. Lệnh này có thể được theo sau bởi một hoặc nhiều kênh được phân tách bằng dấu phẩy.
  • Lưu ý rằng dữ liệu máy chủ gửi được phân cách thuận tiện bằng dấu cách. Bằng cách này, chúng ta có thể chia nhỏ dữ liệu và tham chiếu nó bằng cách sử dụng một chỉ mục mảng.
Phát triển một Bot IRC Bước 11
Phát triển một Bot IRC Bước 11

Bước 8. Trả lời tin nhắn kênh

Bây giờ cho phần thú vị. Bot của bạn đã tham gia kênh, vì vậy bây giờ bạn có thể sử dụng nó cho những gì bạn muốn. Hãy tạo một lệnh ví dụ có tên là @moo.

  • Lưu ý độ lệch nơi tin nhắn bắt đầu (điều này áp dụng cho cả kênh và tin nhắn riêng tư). Nó luôn ở cùng một nơi.
  • Bạn có thể xử lý các lệnh có khoảng trắng trong chúng bằng cách nối các dữ liệu đã chia nhỏ lại với nhau ($ d). Điều đó nằm ngoài phạm vi của bài viết này.
  • Nếu mục tiêu là một kênh (chẳng hạn như # bottom-test), thì bạn trả lời kênh đó. Nếu đó là một tin nhắn riêng tư, bit này sẽ là biệt hiệu của bot của bạn! Sau đó, bạn phải trả lời bằng biệt hiệu của người gửi, không phải của bạn (nếu không, bạn đang tự nói chuyện với chính mình, và điều đó thật ngớ ngẩn).
Phát triển một Bot IRC Bước 12
Phát triển một Bot IRC Bước 12

Bước 9. Mở rộng bot của bạn

Bạn có thể thêm nhiều tính năng mới bằng cách sử dụng triển khai ở trên. Có nhiều lệnh khác có thể được đưa ra cho mạng IRC, chẳng hạn như quản lý hoạt động, đá và cấm, thiết lập chủ đề, trong số nhiều tính năng khác.

Lời khuyên

  • Bạn có thể tạo ra kết quả của lệnh "/ me" bằng cách thêm tiền tố vào thư của bạn như sau:

    • PRIVMSG #channel: / 001ACTION văn bản tại đây / 001.
    • 001 có nghĩa là ký tự ASCII 1 và sẽ được hiểu như vậy trong một chuỗi PHP được trích dẫn kép. Ngoài ra, bạn có thể sử dụng

      chr (1)

    • bên ngoài của chuỗi.
  • Màu sắc có thể được tạo ra trong một tin nhắn bằng tiền tố "\ 003" (mã ASCII 3) theo sau là một số cho một màu. 0 = trắng, 1 = đen, 2 = xanh lam, 3 = xanh lục, 4 = đỏ […]. Xem trang của mIRC để biết thêm màu sắc.
  • Theo phép lịch sự, hãy nhận sự đồng ý của chủ sở hữu kênh và nhà điều hành IRC trước khi đưa bot của bạn lên mạng. Không phải tất cả các mạng và kênh đều có chính sách chào đón đối với bot, ngay cả những bot hoạt động tốt.
  • Một số daemon IRC vượt ra ngoài các thông số kỹ thuật của giao thức và triển khai các tính năng khác. Nếu bạn đang sử dụng nó cho một mạng cụ thể, bạn chắc chắn có thể sử dụng các tính năng đó nếu bạn biết về giao thức của chúng. Tuy nhiên, nếu bạn muốn bot của mình được triển khai trên một số mạng, hãy cố gắng giữ nó theo những gì trong RFC.

Đề xuất: