區域網遠端喚醒 Wakeup On LAN

2021-04-01 04:27:34 字數 1615 閱讀 1264

// 區域網遠端喚醒(wakeup on lan) -- 傳送乙個magic packet到某個mac位址

// magic packet:udp廣播包,埠不限,資料是ff-ff-ff-ff-ff-ff加16個mac

// 編譯:cl sendmagic.cpp ws2_32.lib

#include

#include

int main(int argc, char *argv)

//檢查mac位址是否正確

for (char * a=argv[1]; *a; a++)

if (*a!='-' && !isxdigit(*a))

int dstaddr[6];

int i=sscanf(argv[1], "%2x-%2x-%2x-%2x-%2x-%2x",

&dstaddr[0], &dstaddr[1], &dstaddr[2], &dstaddr[3], &dstaddr[4], &dstaddr[5]);

if (i!=6)

unsigned char ether_addr[6];

for (i=0; i<6; i++)

ether_addr[i]=dstaddr[i];

//構造magic packet

u_char magicpacket[200];

memset(magicpacket, 0xff, 6);

int packetsize=6;

for (i=0; i<16; i++)

//啟動wsa

wsadata wsadata;

if (wsastartup( makeword(2, 0), &wsadata)!=0)

//建立socket

socket sock=socket(af_i***, sock_dgram, 0);

if (sock==invalid_socket)

//設定為廣播傳送

bool boptval=true;

int ioptlen=sizeof(bool);

if (setsockopt(sock, sol_socket, so_broadcast, (char*)&boptval, ioptlen)==socket_error)

sockaddr_in to;

to.sin_family=af_i***;

to.sin_port=htons(0);

to.sin_addr.s_addr=htonl(inaddr_broadcast);

//傳送magic packet

if (sendto(sock, (const char *)magicpacket, packetsize, 0, (const struct sockaddr *)&to, sizeof(to))==socket_error)

fprintf(stderr, "magic packet send error: %d", wsagetlasterror());

else

printf("magic packet send!");

closesocket(sock);

wsacleanup();

return 0;

}

區域網遠端重啟服務

在配置mysql的workbench時,遠端的administrator的配置總是提示wmi查詢失敗,怎麼也弄不好,可是想重啟在遠端計算機上的mysql服務時,就不得不每次遠端登入上去重啟,很老火。在網上找了一下,使用wmi指令碼程式設計能夠實現遠端重啟服務,猜想mysql可能也是使用它進行的,可是...

區域網windows遠端連線

開始執行 mstsc 使用者名稱 administrator 在windows xp下,不管是從網路上訪問其他機器,還是使用遠端桌面功能登入系統,常常遇到類似 由於帳戶限制你無法登入 的提示,這是由於你所使用的登入帳號的密碼為空,並且所要登入的遠端計算機中的 組策略 禁止空密碼使用者通過網路登入引起...

區域網實現遠端開機 方法

1.硬體需求 實現網路開機,需要主機板 網絡卡 電源3個裝置支援。首先需要檢視主機板使用說明書,檢視主機板是否支援wake up on internal modem wom 或者wake up on lan wol 技術,如果支援就說明主機板支援遠端開機。能否實現遠端喚醒,其中最主要的乙個部件就是支...