import inspect
import json
from pprint import pprint
-#from scapy.layers.dns import DNS
-#from scapy.contrib.mpls import MPLS
+
+# add some layers as an example
+# need to test more
+from scapy.layers.dns import *
+from scapy.layers.dhcp import *
+from scapy.layers.ipsec import *
+from scapy.layers.netflow import *
+from scapy.layers.sctp import *
+from scapy.layers.tftp import *
+
+from scapy.contrib.mpls import *
+from scapy.contrib.igmp import *
+from scapy.contrib.igmpv3 import *
+
+
+
#additional_stl_udp_pkts = os.path.abspath(os.path.join(os.pardir,os.pardir,os.pardir,os.pardir, os.pardir,'stl'))
#sys.path.append(additional_stl_udp_pkts)
self.dstname = dstname
def i2m(self, pkt, x):
if x is None:
- iff,x,gw = pkt.route()
- if x is None:
- x = "0.0.0.0"
+ x="16.0.0.1"
return IPField.i2m(self, pkt, x)
def i2h(self, pkt, x):
if x is None:
class DestMACField(MACField):
def __init__(self, name):
MACField.__init__(self, name, None)
- def i2h(self, pkt, x):
- if x is None:
- x = conf.neighbor.resolve(pkt,pkt.payload)
- if x is None:
- x = "ff:ff:ff:ff:ff:ff"
- warning("Mac address to reach destination not found. Using broadcast.")
- return MACField.i2h(self, pkt, x)
- def i2m(self, pkt, x):
- return MACField.i2m(self, pkt, self.i2h(pkt, x))
class SourceMACField(MACField):
def __init__(self, name):
MACField.__init__(self, name, None)
- def i2h(self, pkt, x):
- if x is None:
- iff,a,gw = pkt.payload.route()
- if iff:
- try:
- x = get_if_hwaddr(iff)
- except:
- pass
- if x is None:
- x = "00:00:00:00:00:00"
- return MACField.i2h(self, pkt, x)
- def i2m(self, pkt, x):
- return MACField.i2m(self, pkt, self.i2h(pkt, x))
class ARPSourceMACField(MACField):
def __init__(self, name):
MACField.__init__(self, name, None)
- def i2h(self, pkt, x):
- if x is None:
- iff,a,gw = pkt.route()
- if iff:
- try:
- x = get_if_hwaddr(iff)
- except:
- pass
- if x is None:
- x = "00:00:00:00:00:00"
- return MACField.i2h(self, pkt, x)
- def i2m(self, pkt, x):
- return MACField.i2m(self, pkt, self.i2h(pkt, x))
self.dstname = dstname
def i2m(self, pkt, x):
if x is None:
- iff,x,gw = pkt.route()
- if x is None:
- x = "0.0.0.0"
+ x="16.0.0.1"
return IPField.i2m(self, pkt, x)
def i2h(self, pkt, x):
if x is None:
class DestMACField(MACField):
def __init__(self, name):
MACField.__init__(self, name, None)
- def i2h(self, pkt, x):
- if x is None:
- x = conf.neighbor.resolve(pkt,pkt.payload)
- if x is None:
- x = "ff:ff:ff:ff:ff:ff"
- warning("Mac address to reach destination not found. Using broadcast.")
- return MACField.i2h(self, pkt, x)
- def i2m(self, pkt, x):
- return MACField.i2m(self, pkt, self.i2h(pkt, x))
class SourceMACField(MACField):
def __init__(self, name):
MACField.__init__(self, name, None)
- def i2h(self, pkt, x):
- if x is None:
- iff,a,gw = pkt.payload.route()
- if iff:
- try:
- x = get_if_hwaddr(iff)
- except:
- pass
- if x is None:
- x = "00:00:00:00:00:00"
- return MACField.i2h(self, pkt, x)
- def i2m(self, pkt, x):
- return MACField.i2m(self, pkt, self.i2h(pkt, x))
class ARPSourceMACField(MACField):
def __init__(self, name):
MACField.__init__(self, name, None)
- def i2h(self, pkt, x):
- if x is None:
- iff,a,gw = pkt.route()
- if iff:
- try:
- x = get_if_hwaddr(iff)
- except:
- pass
- if x is None:
- x = "00:00:00:00:00:00"
- return MACField.i2h(self, pkt, x)
- def i2m(self, pkt, x):
- return MACField.i2m(self, pkt, self.i2h(pkt, x))