謹(jǐn)防Python攻破電腦桌面
如何才能看一個(gè)人的桌面呢,都說Python很厲害,就來做一個(gè)利用移動(dòng)端訪問電腦來查看電腦的界面的神器!
不知道大家以前有沒有做過這方面的東西呢?也許大家聽起來還有點(diǎn)不太理解,沒有關(guān)系,下面就帶領(lǐng)大家來看一下這個(gè)炫酷的操作,程序運(yùn)行的結(jié)果如下圖所示。

上圖是程序執(zhí)行的圖片,而下圖是在手機(jī)端訪問電腦時(shí),所返回的電腦端的界面,為了更加直觀的進(jìn)行展示,經(jīng)過手機(jī)端可以訪問到電腦此時(shí)桌面的顯示內(nèi)容,而且是不斷的進(jìn)行刷新顯示的,當(dāng)切換電腦的桌面后,手機(jī)端進(jìn)行下一次的刷新之后同樣會(huì)顯示此時(shí)電腦桌面的顯示內(nèi)容。
為大家闡述這個(gè)操作是如何完成的吧,這里用到了基于python的網(wǎng)絡(luò)編程。程序很簡(jiǎn)單,只有短短的五十行左右,其核心代碼如下圖所示。

- 首先需要將我們的電腦用作客戶端;
- 通過實(shí)例化一個(gè)socket來監(jiān)聽有無客戶端進(jìn)行請(qǐng)求,當(dāng)沒有客戶端進(jìn)行請(qǐng)求時(shí),服務(wù)端端口就一直監(jiān)聽等待;
- 客戶端進(jìn)行請(qǐng)求時(shí)便進(jìn)行服務(wù)端與客戶端的數(shù)據(jù)傳輸,示意圖如下所示。
當(dāng)數(shù)據(jù)服務(wù)端向客戶端進(jìn)行數(shù)據(jù)傳輸時(shí),有一個(gè)默認(rèn)的傳輸內(nèi)容,通過獲取客戶端獲取到的內(nèi)容,可以對(duì)服務(wù)端傳輸?shù)膬?nèi)容進(jìn)行更改,將服務(wù)端傳輸?shù)膬?nèi)容改成下圖所示的html內(nèi)容。

此時(shí)客戶端所收到的內(nèi)容中便會(huì)攜帶“desktop.png”關(guān)鍵詞,當(dāng)滿足這個(gè)條件時(shí),只需要調(diào)用PIL庫中的截屏函數(shù),并將截屏后的圖像傳輸給客戶端即可。然后客戶端就會(huì)展現(xiàn)出來服務(wù)端返回的內(nèi)容,也就是當(dāng)前頁面的圖像了。
最后解釋一下:是如何訪問服務(wù)端的接口呢?很簡(jiǎn)單,只需要在任何一個(gè)瀏覽器下輸入“IP:PORT”即可。這個(gè)IP就是服務(wù)端的IP地址,而PORT就是服務(wù)端進(jìn)行監(jiān)聽的端口號(hào),如下圖所示:

學(xué)會(huì)了嗎,可不要外傳額!