mirror of
https://github.com/lgandx/Responder.git
synced 2025-08-20 13:23:38 -07:00
Update settings.py to expand IPv6 addresses.
Still handles IPv4 addresses as well.
This commit is contained in:
parent
9c303d7bd5
commit
8953f87bbd
1 changed files with 44 additions and 17 deletions
59
settings.py
59
settings.py
|
@ -45,22 +45,49 @@ class Settings:
|
||||||
def expand_ranges(lst):
|
def expand_ranges(lst):
|
||||||
ret = []
|
ret = []
|
||||||
for l in lst:
|
for l in lst:
|
||||||
tab = l.split('.')
|
if ':' in l: #For IPv6 addresses, similar to the IPv4 version below but hex and pads :'s to expand shortend addresses
|
||||||
x = {}
|
while l.count(':') < 7:
|
||||||
i = 0
|
pos = l.find('::')
|
||||||
for byte in tab:
|
l = l[:pos] + ':' + l[pos:]
|
||||||
if '-' not in byte:
|
tab = l.split(':')
|
||||||
x[i] = x[i+1] = int(byte)
|
x = {}
|
||||||
else:
|
i = 0
|
||||||
b = byte.split('-')
|
for byte in tab:
|
||||||
x[i] = int(b[0])
|
if byte == '':
|
||||||
x[i+1] = int(b[1])
|
byte = '0'
|
||||||
i += 2
|
if '-' not in byte:
|
||||||
for a in range(x[0], x[1]+1):
|
x[i] = x[i+1] = int(byte, base=16)
|
||||||
for b in range(x[2], x[3]+1):
|
else:
|
||||||
for c in range(x[4], x[5]+1):
|
b = byte.split('-')
|
||||||
for d in range(x[6], x[7]+1):
|
x[i] = int(b[0], base=16)
|
||||||
ret.append('%d.%d.%d.%d' % (a, b, c, d))
|
x[i+1] = int(b[1], base=16)
|
||||||
|
i += 2
|
||||||
|
for a in range(x[0], x[1]+1):
|
||||||
|
for b in range(x[2], x[3]+1):
|
||||||
|
for c in range(x[4], x[5]+1):
|
||||||
|
for d in range(x[6], x[7]+1):
|
||||||
|
for e in range(x[8], x[9]+1):
|
||||||
|
for f in range(x[10], x[11]+1):
|
||||||
|
for g in range(x[12], x[13]+1):
|
||||||
|
for h in range(x[14], x[15]+1):
|
||||||
|
ret.append('%x:%x:%x:%x:%x:%x:%x:%x' % (a, b, c, d, e, f, g, h))
|
||||||
|
else:
|
||||||
|
tab = l.split('.')
|
||||||
|
x = {}
|
||||||
|
i = 0
|
||||||
|
for byte in tab:
|
||||||
|
if '-' not in byte:
|
||||||
|
x[i] = x[i+1] = int(byte)
|
||||||
|
else:
|
||||||
|
b = byte.split('-')
|
||||||
|
x[i] = int(b[0])
|
||||||
|
x[i+1] = int(b[1])
|
||||||
|
i += 2
|
||||||
|
for a in range(x[0], x[1]+1):
|
||||||
|
for b in range(x[2], x[3]+1):
|
||||||
|
for c in range(x[4], x[5]+1):
|
||||||
|
for d in range(x[6], x[7]+1):
|
||||||
|
ret.append('%d.%d.%d.%d' % (a, b, c, d))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
self.RespondTo = expand_ranges(self.RespondTo)
|
self.RespondTo = expand_ranges(self.RespondTo)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue