diff options
author | 2016-03-21 16:03:47 +0200 | |
---|---|---|
committer | 2016-03-21 16:03:47 +0200 | |
commit | b89efa188810bf95a9d245e69e2961b5721c3b0f (patch) | |
tree | 454273ac6c4ae972ebb8a2c86b893296970b4fa9 /scripts/external_libs/scapy-2.3.1/python2/scapy/contrib/ripng.py | |
parent | f72c6df9d2e9998ae1f3529d729ab7930b35785a (diff) |
scapy python 2/3
Diffstat (limited to 'scripts/external_libs/scapy-2.3.1/python2/scapy/contrib/ripng.py')
-rw-r--r-- | scripts/external_libs/scapy-2.3.1/python2/scapy/contrib/ripng.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/external_libs/scapy-2.3.1/python2/scapy/contrib/ripng.py b/scripts/external_libs/scapy-2.3.1/python2/scapy/contrib/ripng.py new file mode 100644 index 00000000..47e17bc4 --- /dev/null +++ b/scripts/external_libs/scapy-2.3.1/python2/scapy/contrib/ripng.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +# http://trac.secdev.org/scapy/ticket/301 + +# scapy.contrib.description = RIPng +# scapy.contrib.status = loads + +from scapy.packet import * +from scapy.fields import * +from scapy.layers.inet import UDP +from scapy.layers.inet6 import * + +class RIPng(Packet): + name = "RIPng header" + fields_desc = [ + ByteEnumField("cmd", 1, {1 : "req", 2 : "resp"}), + ByteField("ver", 1), + ShortField("null", 0), + ] + +class RIPngEntry(Packet): + name = "RIPng entry" + fields_desc = [ + ConditionalField(IP6Field("prefix", "::"), + lambda pkt: pkt.metric != 255), + ConditionalField(IP6Field("nexthop", "::"), + lambda pkt: pkt.metric == 255), + ShortField("routetag", 0), + ByteField("prefixlen", 0), + ByteEnumField("metric", 1, {16 : "Unreach", + 255 : "next-hop entry"}) + ] + +bind_layers(UDP, RIPng, sport=521, dport=521) +bind_layers(RIPng, RIPngEntry) +bind_layers(RIPngEntry, RIPngEntry) + +if __name__ == "__main__": + from scapy.main import interact + interact(mydict=globals(), mybanner="RIPng") + |