为了上班摸鱼,我用Python开发“BOSS来了”

作者:闲欢
来源:Python技术
作为打工人来说 , 特别是996,、007的工作 , 除了干饭之外 , 最紧张刺激的莫过于上班的时候偶尔偷偷闲 , 去池塘里面摸摸鱼 。
为了上班摸鱼,我用Python开发“BOSS来了”
文章图片
996摸鱼
一般人摸得哪些鱼呢?聊天、微博、微信朋友圈、小游戏、小说、股票基金等等 。
为了上班摸鱼,我用Python开发“BOSS来了”】摸鱼的最大阻碍是什么?当然是包工头(老板)了 , 他们恨不得打工人24小时不间断地干活 。
为了上班摸鱼,我用Python开发“BOSS来了”
文章图片
老板抓摸鱼
但是人的精力是有限的 , 一天只能集中精力干那么几个小时 , 其他时间需要通过摸鱼来调剂有限 , 所以我们只要摸鱼不被包工头发现 , 那是相当愉快的一件事情 。
为此 , 我用Python写了一个小工具——BOSS来了 , 来监控老板 , 减少摸鱼被发现的概率 。
我们知道 , 每台电脑或者手机等终端都有一个固定的Mac地址 , 而我们公司办公区域有几个AP , 大家手机连接的都是距离自己最近的AP , 所以理论上如果我知道老板手机的Mac地址 , 然后扫描局域网的所有mac地址 , 如果出现老板手机的Mac地址 , 那么老板大概率是在我附近的 , 此时摸鱼比较危险;如果没有出现老板额Mac地址 , 那么老板可能离我比较远 , 此时摸鱼比较安全 。
基于上面思路 , 我要做的就是搞到老板手机的Mac地址 , 然后不断轮询局域网的所有Mac地址 , 一旦发现出现老板手机的Mac地址 , 我就老老实实干活 , 一旦老板的Mac地址消失了 , 就可以摸鱼了 。
怎么搞到老板的手机Mac地址?
好多人听到这个可能就感觉没戏了!总不能把老板的手机偷过来 , 然后去设置里面找吧 。
天无绝人之路 , 只要肯动脑 , 办法可不少!
我的方法是这样的 。 当其他同事没有走动的时候 , 老板来的时候 , 保存一次局域网的Mac地址信息 , 当老板走的时候再保存一次 , 然后比对 , 找出老板手机的Mac地址 。 为了确保准确性 , 可以多试几次 。
为了上班摸鱼,我用Python开发“BOSS来了”
文章图片
机智如我
第一步 , 使用ipconfig/all命令 , 可以找到当前所处的网段:
为了上班摸鱼,我用Python开发“BOSS来了”
文章图片
网段
第二步 , 使用轮询命令逐个ping网段内的IP , 这一步是为了建立arp表 。 命令如下:
for/L%iIN(1,1,254)DOping-w1-n1192.168.1.%i
其中 , 192.168.1.%i是要查询的网段 。
第三步 , 使用arp命令可以查询所有的Mac地址 , 命令为:
arp-a
运行之后 , 你会看到类似下面的结果:
为了上班摸鱼,我用Python开发“BOSS来了”
文章图片
mac地址列表
思路已经得到验证 , 准备工作也做好了 , 接下来就是代码实现了 。
首先 , 我们根据上面的思路 , 先写一个获取局域网所有的Mac地址的方法 。
defget_macs():#运行cmd控制窗口 , 输入“arp-a” , 并将内容传递到res中res=os.popen("arp-a")#读取res数据 , 转换为可读数据arps=res.read()print(arps)#将获得的counts中的数据根据“换行符”来进行分割切片result=arps.split('n')#设一个空列表装ipips=[]#设一个空列表装macmacs=[]#遍历foriinrange(1,len(result)):#获得列表中第idx个数据line=result[i]if('Internet'inline)|(''==line)|('接口'inline):continue#根据“”进行切片line_split=line.split("")index=0forlinline_split:ifl!='':index+=1ifindex==1:ips.append(l)elifindex==2:macs.append(l)returnips,macs然后 , 写一个定时轮询 。