X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=string_utils.py;h=9a38d25c49cccddceec4da06ee8bbfe8133749aa;hb=8bc64f43dac0b56e2ef734e183490e840d7382d6;hp=a6a2da3155fcf312e9a9bc21ecd94f26141b4fcb;hpb=9484900f080e16f118806fe54973e69d36b043e8;p=python_utils.git diff --git a/string_utils.py b/string_utils.py index a6a2da3..9a38d25 100644 --- a/string_utils.py +++ b/string_utils.py @@ -791,6 +791,9 @@ def extract_mac_address(in_str: Any, *, separator: str = ":") -> Optional[str]: >>> extract_mac_address(' MAC Address: 34:29:8F:12:0D:2F') '34:29:8F:12:0D:2F' + >>> extract_mac_address('? (10.0.0.30) at d8:5d:e2:34:54:86 on em0 expires in 1176 seconds [ethernet]') + 'd8:5d:e2:34:54:86' + """ if not is_full_string(in_str): return None @@ -1500,6 +1503,19 @@ def from_bitstring(bits: str, encoding='utf-8', errors='surrogatepass') -> str: return n.to_bytes((n.bit_length() + 7) // 8, 'big').decode(encoding, errors) or '\0' +def ip_v4_sort_key(txt: str) -> str: + """Turn an IPv4 address into a tuple for sorting purposes. + + >>> ip_v4_sort_key('10.0.0.18') + (10, 0, 0, 18) + + """ + if not is_ip_v4(txt): + print(f"not IP: {txt}") + return None + return tuple([int(x) for x in txt.split('.')]) + + if __name__ == '__main__': import doctest doctest.testmod()