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 相关文章推荐
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
Python中文件的读取和写入操作
Apr 27 Python
详解Python with/as使用说明
Dec 13 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
django queryset 去重 .distinct()说明
May 19 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
python使用re模块爬取豆瓣Top250电影
Oct 20 Python
Python 利用flask搭建一个共享服务器的步骤
Dec 05 Python
python+opencv实现车道线检测
Feb 19 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 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
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
eclipse php wamp配置教程
2016/06/30 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
python基础教程之获取本机ip数据包示例
2014/02/10 Python
Python中decorator使用实例
2015/04/14 Python
python实现识别相似图片小结
2016/02/22 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
详解python中的线程
2018/02/10 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
what is the difference between ext2 and ext3
2013/11/03 面试题
J2EE系统只能是基于web
2015/09/08 面试题
护士专业推荐信
2013/11/02 职场文书
两则小学生的自我评价分享
2013/11/14 职场文书
中专生自我鉴定范文
2013/12/19 职场文书
市政管理求职信范文
2014/05/07 职场文书
党在我心中演讲稿
2014/09/02 职场文书
Python函数中apply、map、applymap的区别
2021/11/27 Python