3 import hippotit.slip as slip
6 from ipaddress import AddressValueError
8 #---------- packet parsing ----------
10 def packet_addrs(packet):
11 version = packet[0] >> 4
15 factory = ipaddress.IPv4Address
19 factory = ipaddress.IPv6Address
21 raise ValueError('unsupported IP version %d' % version)
22 saddr = factory(packet[ saddroff : saddroff + addrlen ])
23 daddr = factory(packet[ saddroff + addrlen : saddroff + addrlen*2 ])
26 #---------- address handling ----------
30 r = ipaddress.IPv4Address(input)
31 except AddressValueError:
32 r = ipaddress.IPv6Address(input)
37 r = ipaddress.IPv4Network(input)
38 except NetworkValueError:
39 r = ipaddress.IPv6Network(input)