嵌套关键字参数出现奇怪的语法错误
Strange sytax error with nested keyword parameters
我目前正在尝试通过 ARP 中毒利用 MITM 来编写某种 QoS 框。
现在我 运行 陷入语法错误,我似乎无法解决:
File "/home/pi/qosmitm/networker.py", line 53
self.recv_threads.append(multiprocessing.Process(target=sniff, args=(iface=interface,
^ SyntaxError: invalid syntax
代码:
for i in range(0, len(net_map[0])):
ip = net_map[0][i]
mac = net_map[1][i]
self.packet_queues.append(multiprocessing.Queue())
self.recv_threads.append(multiprocessing.Process(target=sniff, args=(iface=interface, filter='host ' + ip, prn=mitm.recv_packets(self.packet_queues[i]))))
接口是一个字符串。
这里是 recv_packets 函数:
def recv_packets(self, queue): # not too sure bout that
def recv_packets(self, pkt):
# flip macs & put into queue
old_src = pkt[Ether].src
print(pkt.summary())
pkt[Ether].src = pkt[Ether].dst
pkt[Ether].dst = old_src queue.put(pkt)
我检查了不同的文档,但我无法找出我做错了什么。我的猜测是它与嵌套函数 calls/callbacks(?).
有某种关系
提前致谢!
感谢@jasonharper 澄清了这一点。阅读他在我的问题下方的评论,以了解对这段更正代码的解释。
self.recv_threads.append(multiprocessing.Process(target=sniff, args={'iface':interface, filter':'host ' + ip, 'prn':mitm.recv_packets(self.packet_queues[i])})
去给他投赞成票以获得快速回答。非常感谢!
我目前正在尝试通过 ARP 中毒利用 MITM 来编写某种 QoS 框。 现在我 运行 陷入语法错误,我似乎无法解决:
File "/home/pi/qosmitm/networker.py", line 53
self.recv_threads.append(multiprocessing.Process(target=sniff, args=(iface=interface,
^ SyntaxError: invalid syntax
代码:
for i in range(0, len(net_map[0])):
ip = net_map[0][i]
mac = net_map[1][i]
self.packet_queues.append(multiprocessing.Queue())
self.recv_threads.append(multiprocessing.Process(target=sniff, args=(iface=interface, filter='host ' + ip, prn=mitm.recv_packets(self.packet_queues[i]))))
接口是一个字符串。
这里是 recv_packets 函数:
def recv_packets(self, queue): # not too sure bout that
def recv_packets(self, pkt):
# flip macs & put into queue
old_src = pkt[Ether].src
print(pkt.summary())
pkt[Ether].src = pkt[Ether].dst
pkt[Ether].dst = old_src queue.put(pkt)
我检查了不同的文档,但我无法找出我做错了什么。我的猜测是它与嵌套函数 calls/callbacks(?).
有某种关系提前致谢!
感谢@jasonharper 澄清了这一点。阅读他在我的问题下方的评论,以了解对这段更正代码的解释。
self.recv_threads.append(multiprocessing.Process(target=sniff, args={'iface':interface, filter':'host ' + ip, 'prn':mitm.recv_packets(self.packet_queues[i])})
去给他投赞成票以获得快速回答。非常感谢!