From 2f9c232540bfef3152fbbfe421c834909a355db2 Mon Sep 17 00:00:00 2001 From: ghost Date: Sat, 23 Dec 2023 20:04:40 +0200 Subject: [PATCH 1/2] add IPv6 support --- pymaster.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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!") From 5f07a83832517504a8ff1afde5d3097c170920ca Mon Sep 17 00:00:00 2001 From: ghost Date: Sun, 24 Dec 2023 09:07:51 +0200 Subject: [PATCH 2/2] add IPv6 support for queryAddr pack --- server_entry.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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