本文整理匯總了Python中scapy.error.Scapy_Exception方法的典型用法代碼示例。如果您正苦於以下問題:Python error.Scapy_Exception方法的具體用法?Python error.Scapy_Exception怎麽用?Python error.Scapy_Exception使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類scapy.error
的用法示例。
在下文中一共展示了error.Scapy_Exception方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: __call__
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def __call__(cls, filename):
"""Creates a cls instance, use the `alternative` if that
fails.
"""
i = cls.__new__(cls, cls.__name__, cls.__bases__, cls.__dict__)
filename, fdesc, magic = cls.open(filename)
try:
i.__init__(filename, fdesc, magic)
except Scapy_Exception:
if "alternative" in cls.__dict__:
cls = cls.__dict__["alternative"]
i = cls.__new__(cls, cls.__name__, cls.__bases__, cls.__dict__)
try:
i.__init__(filename, fdesc, magic)
except Scapy_Exception:
try:
i.f.seek(-4, 1)
except Exception:
pass
raise Scapy_Exception("Not a supported capture file")
return i
示例2: pre_dissect
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def pre_dissect(self, s):
"""
Check that a valid DNS over TCP message can be decoded
"""
if isinstance(self.underlayer, TCP):
# Compute the length of the DNS packet
if len(s) >= 2:
dns_len = struct.unpack("!H", s[:2])[0]
else:
message = "Malformed DNS message: too small!"
warning(message)
raise Scapy_Exception(message)
# Check if the length is valid
if dns_len < 14 or len(s) < dns_len:
message = "Malformed DNS message: invalid length!"
warning(message)
raise Scapy_Exception(message)
return s
# https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4
示例3: in6_cidr2mask
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def in6_cidr2mask(m):
"""
Return the mask (bitstring) associated with provided length
value. For instance if function is called on 48, return value is
b'\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'.
"""
if m > 128 or m < 0:
raise Scapy_Exception("value provided to in6_cidr2mask outside [0, 128] domain (%d)" % m) # noqa: E501
t = []
for i in range(0, 4):
t.append(max(0, 2**32 - 2**(32 - min(32, m))))
m -= 32
return b"".join(struct.pack('!I', x) for x in t)
示例4: get_if_hwaddr
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def get_if_hwaddr(iff):
addrfamily, mac = get_if_raw_hwaddr(iff) # noqa: F405
if addrfamily in [ARPHDR_ETHER, ARPHDR_LOOPBACK]:
return str2mac(mac)
else:
raise Scapy_Exception("Unsupported address family (%i) for interface [%s]" % (addrfamily, iff)) # noqa: E501
# Next step is to import following architecture specific functions:
# def get_if_raw_hwaddr(iff)
# def get_if_raw_addr(iff):
# def get_if_list():
# def get_working_if():
# def attach_filter(s, filter, iface):
# def set_promisc(s,iff,val=1):
# def read_routes():
# def read_routes6():
# def get_if(iff,cmd):
# def get_if_index(iff):
示例5: open_pcap
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def open_pcap(iface, *args, **kargs):
"""open_pcap: Windows routine for creating a pcap from an interface.
This function is also responsible for detecting monitor mode.
"""
iface_pcap_name = pcapname(iface)
if not isinstance(iface, NetworkInterface) and \
iface_pcap_name is not None:
iface = IFACES.dev_from_name(iface)
if iface is None or iface.is_invalid():
raise Scapy_Exception(
"Interface is invalid (no pcap match found) !"
)
# Only check monitor mode when manually specified.
# Checking/setting for monitor mode will slow down the process, and the
# common is case is not to use monitor mode
kw_monitor = kargs.get("monitor", None)
if conf.use_npcap and kw_monitor is not None:
monitored = iface.ismonitor()
if kw_monitor is not monitored:
# The monitor param is specified, and not matching the current
# interface state
iface.setmonitor(kw_monitor)
return _orig_open_pcap(iface_pcap_name, *args, **kargs)
示例6: send
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def send(self, pkt):
"""Send a packet"""
# Use the routing table to find the output interface
iff = pkt.route()[0]
if iff is None:
iff = conf.iface
# Assign the network interface to the BPF handle
if self.assigned_interface != iff:
try:
fcntl.ioctl(self.outs, BIOCSETIF, struct.pack("16s16x", iff.encode())) # noqa: E501
except IOError:
raise Scapy_Exception("BIOCSETIF failed on %s" % iff)
self.assigned_interface = iff
# Build the frame
frame = raw(self.guessed_cls() / pkt)
pkt.sent_time = time.time()
# Send the frame
L2bpfSocket.send(self, frame)
# Sockets manipulation functions
示例7: cancel
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def cancel(handle):
"""Provided its handle, cancels the execution of a timeout."""
handles = TimeoutScheduler._handles
with TimeoutScheduler._mutex:
if handle in handles:
# Time complexity is O(n)
handle._cb = None
handles.remove(handle)
heapq.heapify(handles)
if len(handles) == 0:
# set the event to stop the wait - this kills the thread
TimeoutScheduler._event.set()
else:
raise Scapy_Exception("Handle not found")
示例8: addfield
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def addfield(self, pkt, s, val):
val = self.i2m(pkt, val)
data = []
while val:
if val > 127:
data.append(val & 127)
val //= 128
else:
data.append(val)
lastoffset = len(data) - 1
data = b"".join(chb(val | (0 if i == lastoffset else 128))
for i, val in enumerate(data))
return s + data
if len(data) > 3:
raise Scapy_Exception("%s: malformed length field" %
self.__class__.__name__)
# If val is None / 0
return s + b"\x00"
示例9: make_reply
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def make_reply(self, req):
if self.supported_responses is not None:
for resp in self.supported_responses:
if not isinstance(resp, ECUResponse):
raise Scapy_Exception("Unsupported type for response. "
"Please use `ECUResponse` objects. ")
if not resp.in_correct_session(self.ecu_state.current_session):
continue
if not resp.has_security_access(
self.ecu_state.current_security_level):
continue
if not resp.answers(req):
continue
for r in resp.responses:
for layer in r.layers():
if hasattr(layer, "modifies_ecu_state"):
layer.modifies_ecu_state(r, self.ecu_state)
return resp.responses
return PacketList([self.basecls(b"\x7f" + bytes(req)[0:1] + b"\x10")])
示例10: get_label
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def get_label(response,
positive_case="PR: PositiveResponse",
negative_case="NR: NegativeResponse"):
if response is None:
label = "Timeout"
elif response.service == 0x7f:
# FIXME: service is a protocol specific field
label = negative_case
else:
if isinstance(positive_case, six.string_types):
label = positive_case
elif callable(positive_case):
label = positive_case()
else:
raise Scapy_Exception("Unsupported Type for positive_case. "
"Provide a string or a function.")
return label
示例11: sr1_file
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def sr1_file(test_params, test_filename, display_packet=False):
"""Read test message from given file, sends this message to server and parses response."""
with open(test_filename, "rb") as file_handle:
test_packet = file_handle.read()
if display_packet:
# print("Protocol: {}".format(proto_mapping(test_params.protocol)))
try:
if test_params.protocol in PROTOCOL_TESTERS:
out_packet = PROTOCOL_TESTERS[test_params.protocol].request_parser(
test_packet
)
out_packet.show()
print_verbose(test_params, 60 * "-")
except (TypeError, struct.error, RuntimeError, ValueError, Scapy_Exception):
pass
test_result = None
if test_params.protocol in [Protocol.SSDP]:
test_result = ssdp_send_query(test_params, test_packet)
elif test_params.protocol in protocols_using(UDP):
test_result = udp_sr1(test_params, test_packet)
elif test_params.protocol in protocols_using(TCP):
test_result = tcp_sr1(test_params, test_packet)
return test_result
示例12: make_route
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def make_route(self, host=None, net=None, gw=None, dev=None):
if host is not None:
thenet,msk = host,32
elif net is not None:
thenet,msk = net.split("/")
msk = int(msk)
else:
raise Scapy_Exception("make_route: Incorrect parameters. You should specify a host or a net")
if gw is None:
gw="0.0.0.0"
if dev is None:
if gw:
nhop = gw
else:
nhop = thenet
dev,ifaddr,x = self.route(nhop)
else:
ifaddr = get_if_addr(dev)
return (atol(thenet), itom(msk), gw, dev, ifaddr)
示例13: send
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def send(self, x):
raise Scapy_Exception("Can't send anything with L2pcapListenSocket")
示例14: get_if_raw_hwaddr
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def get_if_raw_hwaddr(iff):
if iff == scapy.arch.LOOPBACK_NAME:
return (772, '\x00'*6)
try:
l = dnet.intf().get(iff)
l = l["link_addr"]
except:
raise Scapy_Exception("Error in attempting to get hw address for interface [%s]" % iff)
return l.type,l.data
示例15: send
# 需要導入模塊: from scapy import error [as 別名]
# 或者: from scapy.error import Scapy_Exception [as 別名]
def send(self, x):
raise Scapy_Exception("Can't send anything with L2ListenSocket")