|
@@ 190-209 (lines=20) @@
|
| 187 |
|
return new_list |
| 188 |
|
|
| 189 |
|
|
| 190 |
|
def target_to_ipv6_short(target: str) -> Optional[List]: |
| 191 |
|
""" Attempt to return a IPv6 short-range list from a target string. """ |
| 192 |
|
|
| 193 |
|
splitted = target.split('-') |
| 194 |
|
if len(splitted) != 2: |
| 195 |
|
return None |
| 196 |
|
|
| 197 |
|
try: |
| 198 |
|
start_packed = socket.inet_pton(socket.AF_INET6, splitted[0]) |
| 199 |
|
end_value = int(splitted[1], 16) |
| 200 |
|
except (socket.error, ValueError): |
| 201 |
|
return None |
| 202 |
|
|
| 203 |
|
start_value = int(binascii.hexlify(start_packed[14:]), 16) |
| 204 |
|
if end_value < 0 or end_value > 0xFFFF or end_value < start_value: |
| 205 |
|
return None |
| 206 |
|
|
| 207 |
|
end_packed = start_packed[:14] + struct.pack('!H', end_value) |
| 208 |
|
|
| 209 |
|
return ipv6_range_to_list(start_packed, end_packed) |
| 210 |
|
|
| 211 |
|
|
| 212 |
|
def target_to_ipv6_long(target: str) -> Optional[List]: |
|
@@ 69-88 (lines=20) @@
|
| 66 |
|
return new_list |
| 67 |
|
|
| 68 |
|
|
| 69 |
|
def target_to_ipv4_short(target: str) -> Optional[List]: |
| 70 |
|
""" Attempt to return a IPv4 short range list from a target string. """ |
| 71 |
|
|
| 72 |
|
splitted = target.split('-') |
| 73 |
|
if len(splitted) != 2: |
| 74 |
|
return None |
| 75 |
|
|
| 76 |
|
try: |
| 77 |
|
start_packed = socket.inet_pton(socket.AF_INET, splitted[0]) |
| 78 |
|
end_value = int(splitted[1]) |
| 79 |
|
except (socket.error, ValueError): |
| 80 |
|
return None |
| 81 |
|
|
| 82 |
|
start_value = int(binascii.hexlify(bytes(start_packed[3])), 16) |
| 83 |
|
if end_value < 0 or end_value > 255 or end_value < start_value: |
| 84 |
|
return None |
| 85 |
|
|
| 86 |
|
end_packed = start_packed[0:3] + struct.pack('B', end_value) |
| 87 |
|
|
| 88 |
|
return ipv4_range_to_list(start_packed, end_packed) |
| 89 |
|
|
| 90 |
|
|
| 91 |
|
def target_to_ipv4_cidr(target: str) -> Optional[List]: |