吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2746|回复: 22
收起左侧

[Python 原创] [Python] 使用Python检测手机是否在局域网,不在就结束微信

[复制链接]
wkdxz 发表于 2021-11-14 14:55
本帖最后由 wkdxz 于 2021-11-14 15:04 编辑

新人第一次发帖,此功能其实可以用bat命令实现,但最近在玩Python,所以用来Python来写。

实现效果:

    手机不在局域网内,则结束微信进程,防止别人偷窥微信聊天记录

思路:
  • 在路由里将IP与手机Mac绑定(让IP可以直接查询到手机在线情况)
  • 使用 Ping 手机IP,检测手机是否在线
  • 如手机在线,就退出检测
  • 手机不在线,则说明人远离电脑,则结束微信进程。



后续问题:
    直接结束微信进程,手机微信上还是显示微信在线。希望有高手帮我完善下代码,可以让微信可以正常退出。
[Python] 纯文本查看 复制代码
from os import system as run
from os import popen as echo
from time import sleep
from sys import exit
from arrow import now


def Wechat_onlie():
    for i in echo('tasklist'):
        if 'WeChat.exe' in i:
            return True
    return False


def Tel_onlie():
    ip = '192.168.0.123'  #手机对应的固定ip地址【在路由器内将手机MAC和IP地址绑定】
    ls = [i.strip() for i in echo('ping /n 2 ' + ip) if len(i) > 1]
    total = ''.join(ls)
    if total.count('TTL=') > 0:  #有 TTL= 字样 表示手机在局域网内
        return True
    return False


def Count_tel_offline(cishu):  #每3秒钟检测一次,然后返回不在线次数
    n = 0
    for i in range(cishu):
        print(f'第{i+1}次检测...')
        if not Tel_onlie():
            n += 1
        sleep(0.5)
    return n


if __name__ == '__main__':
    thistime = now().format('YYYY-MM-DD HH:mm')
    jc = 'WeChat.exe 进程'
    if not Wechat_onlie():
        print(f'无 {jc} ,直接退出')
        exit()
    else:
        print(f'有 {jc}')

    cishu = 5
    jiance = Count_tel_offline(cishu)

    if jiance > 0:  #如果有一次不在线,就结束微信进程
        t = f'{thistime}\t结束微信进程'
        print(t)
        for j in range(3):
            for i in 'Wechat_Browser WeChatPlayer WeChat'.split():
                run(f'taskkill /f /im {i}.exe')

免费评分

参与人数 6吾爱币 +9 热心值 +6 收起 理由
Reer + 1 + 1 热心回复!
growing88 + 1 + 1 谢谢@Thanks!
Virgo178 + 1 + 1 谢谢@Thanks!
SC303 + 1 用心讨论,共获提升!
SuDuA + 1 + 1 谢谢@Thanks!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wkdxz 发表于 2021-11-14 16:51
本帖最后由 wkdxz 于 2021-11-14 16:54 编辑
WUAIDHL 发表于 2021-11-14 16:37
你好,请问怎么使用呢

安装好Python3.8及其以上的版本,下载附件中的脚本运行即可。
我修改一个不依赖第三方库的版本。
如果有需要,我可以打包为exe,但Python打包为exe体积一般比较大,不值得。

检测微信在线情况.rar

827 Bytes, 下载次数: 17, 下载积分: 吾爱币 -1 CB

 楼主| wkdxz 发表于 2021-11-15 08:46
m58758788 发表于 2021-11-14 18:18
可以啊 本来我想post进路由 看看指定设备有没有连入   确实没想到只要ping就可以了

哈哈哈 我也是想了好些办法,最后想到这个。这办法对于其他人来说,难点在于MAC绑定IP。
83571674 发表于 2021-11-14 15:02
如果知道公司的路由密码,这方法就可以用来摸鱼了
fangxin 发表于 2021-11-14 15:52
感谢作者分享
ynboyinkm 发表于 2021-11-14 15:55
这个必须每一秒都在网内,去上个cs都不行...
yunsxk 发表于 2021-11-14 16:00
有点期待这玩意儿
huaibaoyy 发表于 2021-11-14 16:12
看看操作,学习学习
 楼主| wkdxz 发表于 2021-11-14 16:17
ynboyinkm 发表于 2021-11-14 15:55
这个必须每一秒都在网内,去上个cs都不行...

我是把它添加到计划任务里,每5分钟执行一次,倒也不用每一秒都在线。
yybc26 发表于 2021-11-14 16:19
这个有点意思
littleworm 发表于 2021-11-14 16:27
有点意思,防范意识强啊
WUAIDHL 发表于 2021-11-14 16:37
你好,请问怎么使用呢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表