def __init__ (self,data): self.type = PeerType(ord(data[2])) self.flag = PeerFlag(ord(data[3])) self.distinguisher = unpack('!L',data[4:8])[0] self.asn = unpack('!L',data[28:32])[0] self.id = IPv4.unpack(data[32:36]) if self.flag.ipv4(): self.peer_address = IPv4.unpack(data[24:28]) if self.flag.ipv6(): self.peer_address = IPv6.unpack(data[12:28])
def __init__(self, data): self.type = PeerType(ord(data[2])) self.flag = PeerFlag(ord(data[3])) self.distinguisher = unpack('!L', data[4:8])[0] self.asn = unpack('!L', data[28:32])[0] self.id = IPv4.unpack(data[32:36]) if self.flag.ipv4(): self.peer_address = IPv4.unpack(data[24:28]) if self.flag.ipv6(): self.peer_address = IPv6.unpack(data[12:28])
def unpack(cls, data, negotiated): return IPv4.unpack(data, cls)
def unpack (cls, data, negotiated): return IPv4.unpack(data,cls)
def unpack (cls,data,negotiated): if negotiated.asn4: return cls(ASN.unpack(data[:4]),IPv4.unpack(data[-4:])) return cls(ASN.unpack(data[:2]),IPv4.unpack(data[-4:]))
def unpack (cls, data, negotiated): if negotiated.asn4: return cls(ASN.unpack(data[:4]),IPv4.unpack(data[-4:])) return cls(ASN.unpack(data[:2]),IPv4.unpack(data[-4:]))
def unpack (cls, data, negotiated): clusters = [] while data: clusters.append(IPv4.unpack(data[:4])) data = data[4:] return cls(clusters)
def unpack(cls, data, direction, negotiated): return IPv4.unpack(data, cls)
def unpack(cls, data, negotiated): clusters = [] while data: clusters.append(IPv4.unpack(data[:4])) data = data[4:] return cls(clusters)