Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

有時候需要遠程家裡的臺式機使用,因為我平時都是用 MAC 多,但是遠程喚醒只能針對局域網,比較麻煩,於是我想用微信實現遠程喚醒機器。

準備工作


本程序主要是實現遠程管理 Windows10操作系統的開機和關機:

  1. 在 Windows機器的相同內網中放一個 Linux 主機,我這裡用樹莓派代替,如果你是用 OpenWrt 之類的路由器也可以。
  2. Linux 主機需要能夠遠程訪問,我這裡是有 FRP 將樹莓派的端口映射到我的公網 Linux 主機上。所以可以隨時遠程 SSH 過去。
  3. Windows 機器的網卡必須是有線連接,支持網絡喚醒功能。

開機實現思路


首先通過微信發送開機指令,這裡我使用的是 itchat 程序會調用 Paramiko 庫去 SSH 遠程到內網的樹莓派執行 WakeOnLan 命令去喚醒 Windows 主機。

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

程序會通過 ICMP 協議, ping 下需要喚醒的目標主機然後進行過濾,一個正常的 ICMP 包是64字節,過濾打印出這個64。

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

用一段 Linux 命令去過濾是否有64,這裡為啥要用 head -n 1 呢?

因為有可能會出現2行,經過測試,我們只需要取64這個值就可以了:

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

如果有則表示開機成功已經聯網了,返回開機成功,否則程序繼續往下走,去喚醒,然後在 ping 一次確認是否開機,如果為是則返回開機成功,否則返回失敗。程序執行成功後,在我的網站根目錄創建一個 shutdown 文件,用於後面的關機操作:

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

關機部分實現

當接收關機指令時,程序會去刪除網站根目錄的 shutdown 文件,客戶端我寫了幾行代碼,去通過 Requests 庫每隔30s 發送 HTTP head 請求去判斷文件是否是404,如果是404 這說明文件不存在,調用系統關機操作,執行關機。

然後 SSH 到樹莓派去 ping 目標主機,如果返回為空,則說明關機成功,否則關機失敗。這只是針對 Windows 的關機,如果目標主機是 Linux 則簡單多了:

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!


Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!



客戶端代碼,寫完扔計劃任務,開機啟動:

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

使用 TeamViewer 連接:


Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!


缺點


  1. 網頁端微信必須一直登錄,不方便,這個就需要微信不能斷網了。
  2. WakeOnLan 是廣播 MAC 地址的,貌似不能返回是否成功沒,所以還是要 ping 主機看看通不通,判斷下。
  3. 需要一個樹莓派做跳板機,否則也不能喚醒內網設備。
  4. 如果只允許自己控制最好是使用文件助手來發送消息,因為默認情況下,任何人都可以給你發送指令開機。
  5. Windows需要安裝TeamViewer並且設置為開機自動啟動以及綁定賬號設置無人值守模式。這樣方便遠程,如果是Linux 則不需要開啟 ssh 就可以了。

源代碼地址私信小編“01”即可免費獲取+python學習資料!

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!


分享到:


相關文章: