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 相关文章推荐
numpy自动生成数组详解
Dec 15 Python
对Python中range()函数和list的比较
Apr 19 Python
Python随机生成身份证号码及校验功能
Dec 04 Python
Python列表list排列组合操作示例
Dec 18 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
Feb 23 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
matplotlib对象拾取事件处理的实现
Jan 14 Python
OpenCV中resize函数插值算法的实现过程(五种)
Jun 05 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
Mar 03 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类的使用 实例代码讲解
2009/12/28 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
php动态添加url查询参数的方法
2015/04/14 PHP
PHP生成器简单实例
2015/05/13 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
JavaScript定时器详解及实例
2013/08/01 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python多分支if语句的使用
2020/09/03 Python
加热夹克:RAVEAN
2018/10/19 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
银行青年文明号事迹材料
2014/05/31 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
可可西里观后感
2015/06/08 职场文书
小学语文教师研修日志
2015/11/13 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python
解决numpy和torch数据类型转化的问题
2021/05/23 Python
java设计模式--三种工厂模式详解
2021/07/21 Java/Android