发送、接收和响应

2024-04-24 04:12:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在进行一个项目,我需要将数据包发送到特定的网络硬件,接收响应,并根据响应实时生成数据包。在

我遇到了斯卡比,据我所知,它可以完成前两部分:发送和接收。是否可以通过Python检索响应中的必需字段并进行响应?在

谢谢!在


Tags: 项目网络硬件数据包
1条回答
网友
1楼 · 发布于 2024-04-24 04:12:54

在 如果我明白你的意思,你和斯卡比(至少)有两个选择:

干净的方法是创建一个符合您需要的AnsweringMachine(在Scapy的代码中有几个例子)。在

肮脏的(但如果你需要的话可能更快)方法是给prn参数给sniff()一个函数,该函数将接收数据包,编写一个答案(或任何你喜欢的东西)并在网络上send()。在

例如,此代码将发送RST-ACK数据包到SYN标志为on的任何TCP数据包:

def rst(p):
    ans = IP(src=p[IP].dst, dst=p[IP].src)/TCP(
        flags='RA',
        sport=p[TCP].dport,
        dport=p[TCP].sport,
        seq = 0,
        ack = p[TCP].seq + 1,
    )
    send(ans, verbose=False)
    return "%s\n => %s" % (p[IP].summary(), ans.summary())

sniff(iface="eth0", filter="tcp and tcp[tcpflags] & tcp-syn == tcp-syn",
      prn=rst)

相关问题 更多 >