python2.7使用scapy发送syn实例


Posted in Python onMay 05, 2020

我就废话不多说了,大家看代码吧!

from scapy.all import *
 
def syn():
 scrIP = '192.168.10.29'
 srcPort = 23345
 desIP = '12.39.27.23'
 desPort = 8000
 
 ip = IP(src=scrIP, dst=desIP)
 tcp = TCP(sport=srcPort, dport=desPort, seq=13131342, flags='S')
 pkg = ip/tcp
 
 # c->s syn
 res = sr1(pkg)
 res.display()

补充知识:用python 通过ip获取mac和网卡类型(同一网段)

通过网上查阅目前找到的几种方式

环境使用window和linux系统

使用nmap,python-nmap需要依赖机器安装nmap工具

import nmap
nm=nmap.PortScanner()
nm.scan('xxx.xxx.xxx.xxx','xx') # ip地址和端口,端口不填也可以
a=nm['xxx.xxx.xxx.xxx'] #返回主机的详细信息
print(a)
##################################
{'status': {'state': 'up', 'reason': 'arp-response'}, 
'hostnames': [{'type': 'PTR', 'name': 'bogon'}], 
'vendor': {'00:0C:29:F6:2B:F0': 'VMware'}, 
'addresses': {'mac': '00:0C:29:F6:2B:F0', 'ipv4': 'xxx.xxx.xxx.xxx'}, 
'tcp': {111: {'product': 'Microsoft Windows 7 - 10 microsoft-ds', 'state': 'open', 'version': '', 'name': 'microsoft-ds', 'conf': '10', 'extrainfo': 'workgroup: WORKGROUP', 'reason': 'syn-ack', 'cpe': 'cpe:/o:microsoft:windows'}}}

这种方式获取非常简单,但是会耗费很大的时间,不建议使用

通过控制台命令arp -a

def output_cmd(command):
 r = os.popen(command)
 content = r.read()
 r.close()
 return content


def arp_command(ip_address):
 ping_cmd = "ping " + ip_address + " -n 2 "
 result = output_cmd(ping_cmd)
 find_ttl = result.find("TTL")
 if find_ttl != -1:
  arp_cmd = "arp -a %s" % ip_address
  arp_result = output_cmd(arp_cmd)
  ip2 = ip_address + " [ ]+([\w-]+)"
  ip2_mac = re.findall(ip2, arp_result)
  if len(ip2_mac):
   return ip2_mac[0]
  else:
   return 0
 else:
  result = u'无人使用的ip'
 return result

这个是通过先ping,之后在arp -a ip 来获取mac地址,这种方式需要拿到数据后自行去通过正则匹配mac地址,演示的为window上的匹配,linux需要自行修改匹配规则

通过scapy模块(必须机器ipv6未被禁止)

from scapy.all import *

arp_pkt = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=ip)
res = srp1(arp_pkt, timeout=1, verbose=0)
print {"localIP": res.psrc, "mac": res.hwsrc}

通过arpreq模块

[root@oradb ~]# python
Python 2.7.5 (default, Aug 4 2017, 00:39:18) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import arpreq
>>> arpreq.arpreq('192.168.xx.xxx')
'xx:xx:xx:xx:xx:xx'

通过上述方法获取mac地址之后获取网卡类型

可以直接使用mac.py

pip install mac.py

from macpy import Mac

mac = Mac()
information = mac.search(00-11-F1-01-01)
print information

如果感觉信息还是有点老的话,需要自己手动去IEEE上面下载mac和网卡厂商的比对文件自行比对就行了

以上这篇python2.7使用scapy发送syn实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
详解django的serializer序列化model几种方法
Oct 16 Python
python实现中文文本分句的例子
Jul 15 Python
Python箱型图绘制与特征值获取过程解析
Oct 22 Python
python 读取数据库并绘图的实例
Dec 03 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
Tensorflow 实现分批量读取数据
Jan 04 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 #Python
Python之变量类型和if判断方式
May 05 #Python
Python实现CAN报文转换工具教程
May 05 #Python
python TCP包注入方式
May 05 #Python
python构造IP报文实例
May 05 #Python
python3通过udp实现组播数据的发送和接收操作
May 05 #Python
解决python使用list()时总是报错的问题
May 05 #Python
You might like
一个颜色轮换的简单例子
2006/10/09 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
JS实现多功能计算器
2020/10/28 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
Python实现的三层BP神经网络算法示例
2018/02/07 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
国际商务系学生个人的自我评价
2013/11/26 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
入党介绍人意见2015
2015/06/01 职场文书
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android