欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#通過網卡地址喚醒局域網內的其他電腦,此電腦已經設置好支持局域網喚醒命令

admin
2025年6月20日 22:38 本文熱度 233

以下是使用C#實現局域網喚醒(Wake-on-LAN)的代碼示例。該代碼通過發送魔術包(Magic Packet)到目標計算機的MAC地址實現喚醒功能:

using System;

using System.Net;

using System.Net.NetworkInformation;

using System.Net.Sockets;

using System.Text;


public class WakeOnLan

{

    public static void WakeUp(string macAddress, string broadcastIp = "255.255.255.255", int port = 4343)

    {

        // 驗證MAC地址格式并轉換為字節數組

        byte[] macBytes = ParseMacAddress(macAddress);

        

        // 構建魔術包(6x0xFF + 16xMAC地址)

        byte[] packet = new byte[17 * 6];

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

        {

            packet[i] = 0xFF;

        }

        for (int i = 1; i <= 16; i++)

        {

            Buffer.BlockCopy(macBytes, 0, packet, i * 6, 6);

        }


        // 使用UDP發送到廣播地址

        using (UdpClient client = new UdpClient())

        {

            client.EnableBroadcast = true;

            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(broadcastIp), port);

            client.Send(packet, packet.Length, endpoint);

        }

    }


    private static byte[] ParseMacAddress(string macAddress)

    {

        // 移除分隔符

        string cleanMac = macAddress

            .Replace(":", "")

            .Replace("-", "")

            .Replace(".", "")

            .Trim();


        // 驗證長度(12個字符)

        if (cleanMac.Length != 12)

            throw new ArgumentException("Invalid MAC address format");


        // 轉換為字節數組

        byte[] bytes = new byte[6];

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

        {

            string byteStr = cleanMac.Substring(i * 2, 2);

            bytes[i] = Convert.ToByte(byteStr, 16);

        }

        return bytes;

    }

}


// 使用示例

public class Program

{

    public static void Main()

    {

        try

        {

            // 替換為目標電腦的MAC地址

            string macAddress = "01-23-45-67-89-AB"; 

            

            // 可選:指定正確的廣播地址(如 "192.168.1.255")

            WakeOnLan.WakeUp(macAddress);

            

            Console.WriteLine("喚醒信號已發送");

        }

        catch (Exception ex)

        {

            Console.WriteLine($"錯誤: {ex.Message}");

        }

    }

}

使用說明:

1、MAC地址格式

  • 支持帶分隔符(01:23:45:67:89:AB01-23-45-67-89-AB)或無分隔符(0123456789AB

  • 示例:WakeOnLan.WakeUp("01:23:45:67:89:AB");

2、廣播地址

  • 默認使用全局廣播地址 255.255.255.255

  • 如無效可嘗試子網廣播地址(如 192.168.1.255):

WakeOnLan.WakeUp(macAddress, "192.168.1.255");

3、目標計算機要求

  • BIOS/UEFI中啟用Wake-on-LAN(通常位于電源管理設置)

  • 操作系統網卡設置中啟用魔術包喚醒

  • 關閉節能模式(允許網卡在關機時供電)

常見問題處理:

1、防火墻/路由器阻止廣播包

  • 臨時禁用防火墻測試

  • 路由器需允許局域網內廣播

2、物理限制

  • 目標機必須通過網線連接(WiFi喚醒通常不可靠)

  • 需確保交換機支持WOL廣播

?3、權限問題

  • 以管理員身份運行程序(部分系統需提升權限)

注意:此代碼需在局域網內執行,互聯網喚醒需配合路由器端口轉發或專用服務。

附上一個成品軟件:

附件:wakeonlangui.zip


該文章在 2025/6/20 22:41:31 編輯過

全部評論1

admin
2025年6月20日 22:39
 實際測試,成功實現喚醒局域網內指定電腦開機。
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved