1、列出接口

使用 get_if_list() 获取接口列表

from scapy.all import sniff, rdpcap, load_layer, conf, get_if_list
ifaces = get_if_list()
print(ifaces)

您也可以使用 conf.ifaces 对象来获取接口。在本例中,对象首先显示为列。然后 dev_from_index() 用于访问索引2处的接口。

from scapy.all import sniff, rdpcap, load_layer, conf, get_if_list
ifaces = conf.ifaces
print(ifaces)
print(ifaces.dev_from_index(1))

(1)IPv4路由

这些路线都在 conf.route . 您可以使用它来显示路由,或获取特定的路由

from scapy.all import sniff, rdpcap, load_layer, conf, get_if_list
routes = conf.route
print(routes)

获取特定IP的路由: conf.route.route() 将返回 (interface, outgoing_ip, gateway)

from scapy.all import sniff, rdpcap, load_layer, conf, get_if_list
routes = conf.route
print(routes)
print(routes.route("127.0.0.1"))

IPv6路由

与IPv4相同,但 conf.route6

(2)获取路由器IP地址

gw = conf.route.route("0.0.0.0")[2]

(3)获取接口的本地IP/IP

from scapy.all import get_if_addr
ip = get_if_addr(conf.iface)  # default interface
ip = get_if_addr("Intel(R) Wireless-AC 9560 160MHz")
print(ip)

(4)获取接口的本地MAC/MAC

from scapy.all import get_if_hwaddr
mac = get_if_hwaddr(conf.iface)  # default interface
mac = get_if_hwaddr("eth0")
print(mac)

(5)通过IP获取MAC

from scapy.layers.l2 import getmacbyip
mac = getmacbyip("10.0.0.1")
print(mac)

2、scapy支持的数据包类型

from scapy.all import ls
from scapy.layers.inet import IP
# 输出scapy支持的数据包类型
print(ls())
# 使用ls(IP())可以查看IP数据包的参数
print(ls(IP))

(1)构建一个数据包

(2)堆栈层

3、捕获数据包

  • sniff()函数可帮助我们捕获所有流量:
  • 包括countfilterifacelfilterprntimeout选项。

 

原文地址:http://www.cnblogs.com/windyrainy/p/16808036.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性