使用Pyhton 分析酒店针孔摄像头


Posted in Python onMarch 04, 2020

/1 前言/

最近酒店被曝出隐藏摄像头的事情屡见不鲜,搞得大家人心惶惶,有图为证,如下图所示。

使用Pyhton 分析酒店针孔摄像头

今天教大家一下如何用python分析出酒店里的针孔摄像头,让你放心住酒店。

/2 原理介绍/

我们大家都知道,针孔摄像一般都很小,所以它不太可能含有存储设备,都是通过连接酒店房间内的无线网,远程传输给作案人,我们就从这方面入手,用Python的scapy模块扫描局域网内的所有设备,并通过爬虫找到该设备生产厂商,以厂商来判断该设备是否为摄像头。

所需环境:ubuntu、pyhton3.5、pycharm

/3 操作步骤/

实现步骤依赖环境较多,操作起来可能有些复杂,不过就当了解一下也是欧克的,具体的操作步骤如下。

1、用scapy模块的scapy函数模拟构造ARP广播包,代码如下图所示。

使用Pyhton 分析酒店针孔摄像头

这个表示要向网段内的所有主机都询问一下,说的通俗一点就是“请问网段内都有谁在啊”。

2、模拟在局域网内发送。用scapy模块模拟发送ARP广播,代码如下图所示。

使用Pyhton 分析酒店针孔摄像头

其中p是第一步构造的广播包,wifi是本机的网卡名称,timeout是发送时限。

3、返回的两个参数,ans包含两类数据包(ARP请求包和ARP返回信息),请求包是第一步构造的包,返回包是局域网内主机的回应,如下图所示。

使用Pyhton 分析酒店针孔摄像头

包含该主机的ip地址和MAC地址,打码的就是MAC地址;unans返回True或者False,代表是否发送成功。

4、解析返回的数据包。这一步主要是为了从上一步的数据包中把主机MAC地址取出来,虽然看起来很复杂,但实现起来比较简单,代码实现如下图所示。

使用Pyhton 分析酒店针孔摄像头

其中s和r分别是上步所说的请求包和返回包;r[ARP].hwsrc即是返回包中主机的MAC地址。

5、查询MAC地址厂商。由于上网设备MAC地址的唯一性,所以每家厂商的前6位MAC地址都是固定的,这样一来,我们就可以根据MAC地址反查出厂商,在网上找了一家便民查询网的网站,网址为https://mac.51240.com/,如下图所示。

使用Pyhton 分析酒店针孔摄像头

6、只需输入MAC地址就会出现次MAC地址的详细信息,如下图所示。

使用Pyhton 分析酒店针孔摄像头

7、我们需要的是它的组织名称,分析一下此网站,是个最简单的静态网页,如下图所示。

使用Pyhton 分析酒店针孔摄像头

8、也不用解析网页了,直接正则匹配,代码如下图所示。

使用Pyhton 分析酒店针孔摄像头

9、运行程序,得到如下图所示的结果。

使用Pyhton 分析酒店针孔摄像头

从上图可以看到检测的设备有4台主机,1台TP-LINK路由器,1个REALTEK外置网卡,2台华为手机,这种情况应该是正常的。如果是出现摄像头生产厂商类的MAC地址,就要小心了,马上去可疑地方找找吧!

/4 总结/

本文主要介绍了使用Python代码检测酒店里的针孔摄像头,实现原理是用scapy模块模拟发送ARP广播,获取设备的Mac地址,借助第三方平台查询设备的具体信息,检测周边环境是否正常。

本文涉及的Pyhton代码,我已经上传到Github了,感兴趣的小伙伴们,可以去看看,觉得不错,记得给个Star噢!代码链接:https://github.com/cassieeric/python_crawler/tree/master/hotel_monitor

到此这篇关于使用Pyhton 分析酒店针孔摄像头的文章就介绍到这了,更多相关python 酒店针孔摄像头内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中用startswith()函数判断字符串开头的教程
Apr 07 Python
Python bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
python使用PIL缩放网络图片并保存的方法
Apr 24 Python
Python爬虫代理IP池实现方法
Jan 05 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
获取Django项目的全部url方法详解
Oct 26 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Django多数据库联用实现方法解析
Nov 12 Python
详解Scrapy Redis入门实战
Nov 18 Python
python利用opencv实现颜色检测
Feb 23 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 Python
pycharm新建Vue项目的方法步骤(图文)
Mar 04 #Python
使用Python发现隐藏的wifi
Mar 04 #Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 #Python
python实现井字棋小游戏
Mar 04 #Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 #Python
Python tkinter 下拉日历控件代码
Mar 04 #Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 #Python
You might like
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
python中reload重载实例用法
2020/12/15 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
行政部总经理岗位职责
2014/01/04 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
Log4j.properties配置及其使用
2021/08/02 Java/Android