小编Kas*_*mad的帖子

Python:无法从另一个 .py 文件导入函数

我有一个名为 handshake.py 的文件。哪里有函数send_data(argument)。我想将该函数导入另一个名为 siptest.py 的文件。我遇到两个问题。我在 64 位 Windows 7 上使用 microsoft Visual Studio。1)我无法导入功能。我试过使用,

from handshake import*
handshkae.send_data(argument)
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误。

NameError: global name 'handshake' is not defined
Run Code Online (Sandbox Code Playgroud)

我尝试过的另一个选择是使用

import handshake
handshake.send_data(argument)
Run Code Online (Sandbox Code Playgroud)

这给了我一个属性错误。

AttributeError: 'module' object has no attribute 'send_data'
Run Code Online (Sandbox Code Playgroud)

如果我以其他方式使用它,例如

from handshake import send_data 
Run Code Online (Sandbox Code Playgroud)

2) MS Visual Studio 说。没有发现测试,请检查配置设置,但我仍然可以以某种方式运行测试。它说由于导入错误而导致测试失败。

ImportError: cannot import name send_data
Run Code Online (Sandbox Code Playgroud)

这两个文件都在同一目录中。此外,该函数是在handshake.py 中的“TCPhandshake”类中定义的

scapy importerror visual-studio nameerror python-2.7

6
推荐指数
2
解决办法
3万
查看次数

PermissionError: [Errno 1] 不允许操作

我对 python、linux RPI 和 scapy 完全陌生。我正在尝试使用 scapy 发送一些数据包。
在命令行上(仅当授予 scapy 超级用户权限时)

send(IP(dst="1.2.3.4")/ICMP())
Run Code Online (Sandbox Code Playgroud)

这在 python 脚本上运行时非常有效。

from scapy.all import *
p=send(IP(dst="1.2.3.4")/ICMP())
Run Code Online (Sandbox Code Playgroud)

抛出错误

Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    send(IP(dst="1.2.3.4")/ICMP())
  File "/usr/local/lib/python3.4/dist-packages/scapy/sendrecv.py",line   255, in send
    __gen_send(conf.L3socket(*args, **kargs), x, inter=inter, loop=loop, count=count,verbose=verbose, realtime=realtime)
  File "/usr/local/lib/python3.4/dist-packages/scapy/arch/linux.py", line 326, in __init__
    self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type))
  File "/usr/lib/python3.4/socket.py", line 123, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
PermissionError: [Errno 1] Operation not permitted<br>
Run Code Online (Sandbox Code Playgroud)

我正在尝试解决它,但不能,我对环境不熟悉,因此了解不多。就我的搜索而言,这个问题与套接字有关。但我仍然需要一些简单的解释才能理解。

scapy python-3.4

4
推荐指数
1
解决办法
2万
查看次数

传出数据包的 scapy 时间戳测量

有没有办法测量通过 scapy 发送的传出数据包的时间戳?如何以规范化值呈现这些时间戳,例如wireshark 中的时间戳。

我可以通过发送一个简单的数据包流

packet=IP(src="192.168.0.254", dst="192.168.0.2")/TCP(sport=35021, dport=35021)
pkt=sniff(filter="host 192.168.0.254")
Run Code Online (Sandbox Code Playgroud)

当我从另一个终端嗅探时,

pkt=sniff(filter="host 192.168.0.254")
for p in pkt:
    print p[TCP].time
Run Code Online (Sandbox Code Playgroud)

给我以下时间值

1505733059.335
1505733059.336
1505733059.336
1505733059.336
1505733059.337
1505733059.337
1505733059.338
1505733059.338
1505733059.338
1505733059.339
Run Code Online (Sandbox Code Playgroud)

据我所知,这些是发送数据包时的值,对吗?如何将这些值更改为规范化值,例如在wireshark 中?

python timestamp scapy python-2.7

2
推荐指数
1
解决办法
8044
查看次数