python利用scapy模块发送arp包

**

一、基础知识

**
在这里插入图片描述

**

二、发送ARP包

**

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

root@kali:~# scapy
WARNING: No route found for IPv6 destination :: (no default route?)
Welcome to Scapy (2.3.2)
>>> a=ARP()
>>> a.show()
###[ ARP ]###
  hwtype= 0x1
  ptype= 0x800
  hwlen= 6
  plen= 4
  op= who-has
  hwsrc= 00:0c:29:b6:71:0c
  psrc= 192.168.19.140
  hwdst= 00:00:00:00:00:00
  pdst= 0.0.0.0
>>> a.pdst="192.168.1.107"
>>> a.display()
###[ ARP ]###
  hwtype= 0x1
  ptype= 0x800
  hwlen= 6
  plen= 4
  op= who-has
  hwsrc= 00:0c:29:b6:71:0c
  psrc= 192.168.19.140
  hwdst= 00:00:00:00:00:00
  pdst= 192.168.1.107
>>> sr1(a)  //s:sent r:recv 1:返回收到的包的第一个
Begin emission:
.*Finished to send 1 packets.

Received 2 packets, got 1 answers, remaining 0 packets
<ARP  hwtype=0x1 ptype=0x800 hwlen=6 plen=4 op=is-at hwsrc=00:50:56:c0:00:08 psrc=192.168.19.1 hwdst=00:0c:29:b6:71:0c pdst=192.168.19.140 |<Padding  load='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |>>
>>> recv=sr1(a)
Begin emission:
..............*Finished to send 1 packets.

Received 15 packets, got 1 answers, remaining 0 packets
>>> recv.show()
###[ ARP ]###
  hwtype= 0x1
  ptype= 0x800
  hwlen= 6
  plen= 4
  op= is-at
  hwsrc= 00:50:56:c0:00:08
  psrc= 192.168.19.1
  hwdst= 00:0c:29:b6:71:0c
  pdst= 192.168.19.140
###[ Padding ]###
     load= '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

ps:关于arp协议

在这里插入图片描述

sr1(),发送方法是发出去一个包还必须返回一个包,但是加入我们发送的目的地址主机存活但是没有在线,以至于我们不能收到返回的包,这时候我们可以手动的设置一个参数timeouts,verbos参数(默认为1)的意思是是否显示详细信息。
1.只发不收send、sendp区别是在第二层还是第三层发包,我们手动指定Ether的时候我们是在第二层发包,需要用sendp方法。
2.发包且接受回复:sr() srp() sr1() srp1()。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scapy是一个强大的交互式数据处理程序,使用Python编写。它可以伪造或解码各种网络协议的数据发送、捕获、匹配请求和回复等等。它可以轻松处理一些常见操作,如端口扫描、tracerouting、探测、单元测试、攻击或网络发现。Scapy还具有一些其他优秀的特性,如发送无效数据帧、注入修改的802.11数据帧、解码加密通道(VOIP)上的WEP、ARP缓存攻击(VLAN)等。它是其他工具无法完成的任务的理想选择。\[3\] 在使用Scapy之前,你需要导入相关的模块。例如,你可以使用以下代码导入Scapy的相关模块: ``` from scapy.layers.inet import * from scapy.all import * ``` 接下来,你可以使用Scapy构造数据发送数据、捕获数据等等。你可以使用`IP()`、`TCP()`等函数构造不同类型的数据,并使用`send()`或`sendp()`方法发送数据。你还可以使用`sniff()`函数来捕获数据,并指定过滤条件、网卡、处理函数和捕获数量等参数。你还可以使用`wrpcap()`和`rdpcap()`函数来保存和读取数据。\[2\] 总之,Scapy是一个功能强大的Python库,用于处理网络数据。它提供了丰富的功能和灵活的接口,使得网络数据的处理变得更加简单和高效。 #### 引用[.reference_title] - *1* *2* [Python-scapy库](https://blog.csdn.net/qingguaxiaoxiao/article/details/131170191)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python———scapy库(数据发送)](https://blog.csdn.net/weixin_43803070/article/details/90549701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值