Qt中使用wol技術在區域網內遠端開啟多台計算機

2021-10-08 11:05:20 字數 1617 閱讀 3086

在專案中需要使用一台電腦控制多台電腦開機,然後研究了一下, 在此記錄。方法很簡單,檢視目標計算機的mac位址,組合成乙個魔法包,通過廣播傳送到當前區域網內,對應mac位址的計算機就會開機。(需要設定目標計算機允許遠端鏈結;①具體步驟是控制面板—系統安全—允許遠端訪問----選擇允許遠端鏈結到此計算機 ;②進入bios設定網絡卡啟動,進入bios後,找到configuration中的lan network inte***ce(帶lan的),設定成enabled就完事)。

magic packet:6位元組的ff接上mac位址重複16次,每次一共發過去102位元組。

例如mac位址為:6a 5b 7c 8d 9c 2a

應該組合成如下包:

ff ff ff ff ff ff

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

6a 5b 7c 8d 9c 2a

測試程式:

qbytearray array;

for(

inti(0

); i <6;

++i)

//mac位址 6a 5b 7c 8d 9c 2a

qbytearray macarray;

macarray.

(char

(0x6a))

; macarray.

(char

(0x5b))

; macarray.

(char

(0x7c))

; macarray.

(char

(0x8d))

; macarray.

(char

(0x9c))

; macarray.

(char

(0x2a))

;for

(inti(

0); i <16;

++i)

//可以列印出來看看,一共存了102位元組

qdebug()

<< array.

tohex()

;

qudpsocket *socket =

newqudpsocket

(this);

socket-

>

writedatagram

(array,

qhostaddress

("191.199.1.255"),

65533

);

大功告成 end

使用docker在區域網內搭建ftp伺服器

linux環境下部署vsftpd比較繁瑣,可以直接使用docker官方倉庫中的pure ftpd映象來部署ftp伺服器。1.拉取映象docker pull stilliard pure ftpd2.啟動映象docker run d name ftp p 21 21 p 30000 30009 300...

使用samba 共享區域網內的檔案

華碩 筆記本 macbookpro arch 作為伺服器,mac 作為客戶端 在arch上安裝samba pacman s samba建立 samba 賬號 pdbedit a root設定開機時啟動 systemctl enable smb.service啟動samba systemctl sta...

在區域網內常見傳輸的網路協議

常見的tcp和http將另行介紹 ssdp 和dhcp或者是dns不同,不需要網路設定伺服器的支援。ssdp是upnp的基礎,主要應用於家庭活著小型的辦公環境。ssdp協議基於httpu,httpu是對http1.1的擴充套件,應用於udp的傳輸層而非tcp上。在ipv4中,使用廣播位址239.25...