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的re模块应用实例
Sep 26 Python
python 实现判断ip连通性的方法总结
Apr 22 Python
mac下给python3安装requests库和scrapy库的实例
Jun 13 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
Python中如何添加自定义模块
Jun 09 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
python数据抓取3种方法总结
Feb 07 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
PHP 图片上传代码
2011/09/13 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
python类参数self使用示例
2014/02/17 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python实现合并字典的方法
2015/07/07 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
python中round函数如何使用
2020/06/19 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
成考报名单位证明范本
2014/01/16 职场文书
服装创业计划书范文
2014/02/05 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
个人综合鉴定材料
2014/05/23 职场文书
生产助理岗位职责
2014/06/18 职场文书
重点工程汇报材料
2014/08/27 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书