diff --git a/pymaster.py b/pymaster.py index 949823c..cca0402 100755 --- a/pymaster.py +++ b/pymaster.py @@ -67,7 +67,10 @@ def __init__(self, ip, port): self.serverRL = IPRateLimit('server', 60, 30) self.clientRL = IPRateLimit('client', 60, 120) self.ipfilterRL = IPRateLimit('filterlog', 60, 10) - self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + if ':' in ip: + self.sock = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) + else: + self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.sock.bind((ip, port)) log("Welcome to PyMaster!") diff --git a/server_entry.py b/server_entry.py index 7a31dc0..e79afc8 100644 --- a/server_entry.py +++ b/server_entry.py @@ -1,5 +1,6 @@ from time import time from struct import pack +import ipaddress class ServerEntry: challenge2 = 0 @@ -67,8 +68,7 @@ def __init__(self, addr, challenge): self.addr = addr # Shortcuts for generating query self.queryAddr = b'' - for i in addr[0].split('.'): - self.queryAddr += pack('!B', int(i)) + self.queryAddr += ipaddress.ip_address(addr[0]).packed self.queryAddr += pack('!H', int(addr[1])) # Random number that server must return