Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import os
- import sys
- from urllib2 import urlopen
- # PACKET TEMPLATE for MESSAGES
- # 0:15 = USERNAME
- # 16:24 = NICKNAME?
- # 24:39 = SRC IP
- # 39: = MESSAGE
- #v0.0.1
- class Chat:
- @staticmethod
- def __DEBUG__(content, is_debug):
- if is_debug:
- sys.stdout(">>%s" % content)
- else:
- pass
- def __init__(self, username, host, port=80, password="", is_debug=False):
- self.username = username
- self.password = password
- self.host = host
- self.port = port
- self.socket = None
- self.is_debug = is_debug
- self._ = None # temporary variable used for whatever
- self.e_s_r_b_l_a = 4 # expected server reply buffer length (for) acknowledgement
- self.crlf = "\r\n"
- self.version = "001"
- self.ip = urlopen("http://api.ipify.org").read()
- self.users = []
- self.packet = \
- {
- "username" : "".zfill(16),
- "nickname" : "".zfill(8),
- "source" : "".zfill(15),
- "message" : None,
- #"sequence" : 0,
- }
- self.auth = "AUTH%s%s~%s%s" % (self.ip, self.version, len(self.ip), self.crlf)
- self.ack = "ACKN"
- self.authed = False
- def new(self):
- return socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- def connect(self):
- if not self.socket:
- self.socket = self.new()
- if self.socket:
- self.socket.connect((self.host, self.port))
- self.socket.send(self.auth)
- self._ = self.socket.recv(4)
- if len(self._) != self.e_s_r_b_l_a:
- print("[1] Received malformed server reply. (%s)" % (self._))
- self.close()
- elif len(self._) == self.e_s_r_b_l_a:
- print("[0] Received correct server reply (according to length). (%s)" % (self._))
- if self._ == self.ack:
- print("[0] Recieved successful server acknowledgement.")
- self.authed = True
- def send_message(self, content):
- pass
- def close(self):
- if socket:
- self.socket.close()
- return 0
- else:
- return 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement