Code Duplication    Length = 20-20 lines in 2 locations

ospd/network.py 2 locations

@@ 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]: