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中几种操作字符串的方法的介绍
Apr 09 Python
Python脚本实现虾米网签到功能
Apr 12 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
TensorFlow实现简单卷积神经网络
May 24 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
Tensorflow 多线程与多进程数据加载实例
Feb 05 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 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
PHP 图像尺寸调整代码
2010/05/26 PHP
PHP分页函数代码(简单实用型)
2010/12/02 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
BootStrap3使用错误记录及解决办法
2016/12/22 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
python进行TCP端口扫描的实现
2018/12/21 Python
python实现石头剪刀布程序
2021/01/20 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
Python map及filter函数使用方法解析
2020/08/06 Python
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
Servlet如何得到服务器的信息
2015/12/22 面试题
教师自荐书
2013/10/08 职场文书
小学生学习感言
2014/03/10 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书