远程连接电脑_Python黑科技:在家远程遥控公司电脑,python+微信一键连接!
有時(shí)候需要遠(yuǎn)程家里的臺(tái)式機(jī)使用,因?yàn)槲移綍r(shí)都是用 MAC 多,但是遠(yuǎn)程喚醒只能針對(duì)局域網(wǎng),比較麻煩,于是我想用微信實(shí)現(xiàn)遠(yuǎn)程喚醒機(jī)器。
準(zhǔn)備工作
本程序主要是實(shí)現(xiàn)遠(yuǎn)程管理 Windows10操作系統(tǒng)的開(kāi)機(jī)和關(guān)機(jī):
開(kāi)機(jī)實(shí)現(xiàn)思路
首先通過(guò)微信發(fā)送開(kāi)機(jī)指令,這里我使用的是 itchat 程序會(huì)調(diào)用 Paramiko 庫(kù)去 SSH 遠(yuǎn)程到內(nèi)網(wǎng)的樹(shù)莓派執(zhí)行 WakeOnLan 命令去喚醒 Windows 主機(jī)。
程序會(huì)通過(guò) ICMP 協(xié)議, ping 下需要喚醒的目標(biāo)主機(jī)然后進(jìn)行過(guò)濾,一個(gè)正常的 ICMP 包是64字節(jié),過(guò)濾打印出這個(gè)64。
例如 ping 百度:
用一段 Linux 命令去過(guò)濾是否有64,這里為啥要用 head -n 1 呢?
因?yàn)橛锌赡軙?huì)出現(xiàn)2行,經(jīng)過(guò)測(cè)試,我們只需要取64這個(gè)值就可以了:
如果有則表示開(kāi)機(jī)成功已經(jīng)聯(lián)網(wǎng)了,返回開(kāi)機(jī)成功,否則程序繼續(xù)往下走,去喚醒,然后在 ping 一次確認(rèn)是否開(kāi)機(jī),如果為是則返回開(kāi)機(jī)成功,否則返回失敗。程序執(zhí)行成功后,在我的網(wǎng)站根目錄創(chuàng)建一個(gè) shutdown 文件,用于后面的關(guān)機(jī)操作:
關(guān)機(jī)部分實(shí)現(xiàn)
當(dāng)接收關(guān)機(jī)指令時(shí),程序會(huì)去刪除網(wǎng)站根目錄的 shutdown 文件,客戶端我寫(xiě)了幾行代碼,去通過(guò) Requests 庫(kù)每隔30s 發(fā)送 HTTP head 請(qǐng)求去判斷文件是否是404,如果是404 這說(shuō)明文件不存在,調(diào)用系統(tǒng)關(guān)機(jī)操作,執(zhí)行關(guān)機(jī)。
然后 SSH 到樹(shù)莓派去 ping 目標(biāo)主機(jī),如果返回為空,則說(shuō)明關(guān)機(jī)成功,否則關(guān)機(jī)失敗。這只是針對(duì) Windows 的關(guān)機(jī),如果目標(biāo)主機(jī)是 Linux 則簡(jiǎn)單多了:
客戶端代碼,寫(xiě)完扔計(jì)劃任務(wù),開(kāi)機(jī)啟動(dòng):
歡迎大家加入小編創(chuàng)建的Python行業(yè)交流群,有大牛答疑,有資源共享,有企業(yè)招人!是一個(gè)非常不錯(cuò)的交流基地!群號(hào):683380553
使用 TeamViewer 連接:
缺點(diǎn)
總結(jié)
以上是生活随笔為你收集整理的远程连接电脑_Python黑科技:在家远程遥控公司电脑,python+微信一键连接!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: windows功能_这 12 个好用 W
- 下一篇: 登上热搜!这可能是中国最穷的211大学