Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- __author__ = "nonellldd"
- import socket
- import sys
- import time
- import os
- import random
- import threading
- import math, re, base64
- class IRC:
- def __init__(self):
- # Define the socket
- print ("Create socket")
- self.irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- def send(self, channel, msg):
- # Transfer data
- self.irc.send(bytes("PRIVMSG " + channel + " " + msg + "\n", "UTF-8"))
- def send_private_message(self, nick, message):
- if message.startswith("#"):
- message = bytes(message[1:] + "\n", "UTF-8")
- else:
- message = bytes("PRIVMSG " + nick + " " + message + "\n", "UTF-8")
- print ("Send Message", message)
- self.irc.send(message)
- def connect(self, server, port, channel, botnick, botpass, botnickpass):
- # Connect to the server
- print("Connecting to: " + server)
- self.irc.connect((server, port))
- # Perform user authentication
- reg_user = bytes("USER " + botnick + " " + botnick +" " + botnick + " :python\n", "UTF-8")
- print ("reg_user", bytes("USER " + botnick + " " + botnick +" " + botnick + " :python\n", "UTF-8"))
- self.irc.send(reg_user)
- reg_nick = bytes("NICK " + botnick + "\n", "UTF-8")
- print("reg_nick", reg_nick)
- self.irc.send(reg_nick)
- reg_pass = bytes("NICKSERV IDENTIFY " + botnickpass + " " + botpass + "\n", "UTF-8")
- print ("reg_pass", reg_pass)
- self.irc.send(reg_pass)
- time.sleep(5)
- # join the channel
- join_channel = bytes("JOIN " + channel + "\n", "UTF-8")
- print("join_channel", join_channel)
- self.irc.send(join_channel)
- def get_response(self):
- time.sleep(1)
- # Get the response
- resp = self.irc.recv(2040).decode("UTF-8")
- print ("resp: ", resp)
- if resp.find('PING') != -1:
- pong = bytes('PONG ' + resp.split()[1] + '\r\n', "UTF-8")
- print ("===========================")
- print ("pong: ", pong)
- print ("===========================")
- self.irc.send(pong)
- if resp.find("Candy!Candy@root-me.org PRIVMSG dd"):
- # numbers = re.findall("(\d+) / (\d+)", resp)
- # if numbers:
- # numbers = numbers[0]
- # req = math.sqrt(float(numbers[0])) * float(numbers[1])
- # req = round(req, 2)
- # self.send_private_message("candy", "!ep1 -rep " + str(req))
- s = re.findall(":Candy!Candy@root-me.org PRIVMSG dd :(\S+)", resp)
- if s:
- s= s[0]
- self.send_private_message("candy", "!ep2 -rep " + base64.b64decode(s).decode("utf-8"))
- return resp
- server = "irc.root-me.org" # Provide a valid server IP/Hostname
- port = 6667
- channel = "#root-me_challenge"
- botnick = "dd"
- botnickpass = "dd"
- botpass = "<%= @dd %>"
- target_bot = "candy"
- ircbot = IRC()
- ircbot.connect(server, port, channel, botnick, botpass, botnickpass)
- def send_message(ircbot):
- while 1:
- active = input("Active: ")
- message = "!ep3"
- ircbot.send_private_message(target_bot, message)
- t = threading.Thread(target=send_message, args=(ircbot,))
- t.start()
- while True:
- text = ircbot.get_response()
- print(text)
- if "PRIVMSG" in text and channel in text and "hello" in text:
- ircbot.send(channel, "Hello!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement