国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

C#網(wǎng)絡喚醒

2019-11-17 03:23:40
字體:
來源:轉載
供稿:網(wǎng)友

C#網(wǎng)絡喚醒

什么是網(wǎng)絡喚醒

網(wǎng)絡喚醒實現(xiàn)了對網(wǎng)絡的集中管理,即在任何時刻,網(wǎng)管中心的IT管理人員可以經(jīng)由網(wǎng)絡遠程喚醒一臺處于休眠或關機狀態(tài)的計算機。使用這一功能,IT管理人員可以在下班后,網(wǎng)絡流量最小以及企業(yè)的正常運作最不受影響的時候完成所有操作系統(tǒng)及應用軟件的升級及其他管理任務。

為了喚醒網(wǎng)絡上的計算機,用戶必須發(fā)出一種數(shù)據(jù)包,該數(shù)據(jù)包的格式與普通數(shù)據(jù)包不同,而且還必須使用相應的專用軟件才能產(chǎn)生。當前比較普遍采用的是AMD公司制作的Magic Packet,這套軟件可以生成網(wǎng)絡喚醒所需要的特殊數(shù)據(jù)包。該數(shù)據(jù)包包含有連續(xù)6個字節(jié)的“FF”和連續(xù)重復16次的MAC地址。Magic Packet 雖然只是AMD公司開發(fā)推廣的一項技術,并非業(yè)界公認的標準,但是仍受到很多網(wǎng)卡制造商的支持,因此許多具有網(wǎng)絡喚醒功能的網(wǎng)卡都能與之兼容。

要使用網(wǎng)絡喚醒,你必須擁有:

1:可向網(wǎng)卡發(fā)送網(wǎng)絡“喚醒幀”的軟件。

2:可解碼“喚醒幀”的網(wǎng)卡,該網(wǎng)卡同時還必須可以從輔助電源中獲取能量,并能夠向主板發(fā)送“喚醒信號”。 (基本上都支持)

先說被喚醒機器如何設置

1.Win7系統(tǒng)下設置如下圖,計算機-》設備管理器-》網(wǎng)卡驅動屬性

2.ipconfig –all 命令查看本機網(wǎng)卡的MAC地址

發(fā)送的網(wǎng)絡數(shù)據(jù)包顯示如下圖,其中mac地址是隨便填寫的重復的09。

C#代碼如下:

        PRivate IPEndPoint point;        private UdpClient client = new UdpClient();        /**         * 喚醒遠程機器方法         * @param         * mac 要喚醒的機器的MAC         * IP         * port udp消息發(fā)送端口         *         * 摘要:喚醒方法為網(wǎng)卡提供的魔術封包功能,即以廣播模式發(fā)送6個FF加上16遍目標MAC地址的字節(jié)數(shù)組         **/        private void wakeUp(string mac, int port, string ip)        {            byte[] magicBytes = getMagicPacket(mac);            point = new IPEndPoint(IPAddress.Parse(ip), port);//廣播模式:255.255.255.255            try            {                client.Send(magicBytes, magicBytes.Length, point);            }            catch (SocketException e) { MessageBox.Show(e.Message); }        }        /// <summary>        /// 字符串轉16進制字節(jié)數(shù)組        /// </summary>        /// <param name="hexString"></param>        /// <returns></returns>        public static byte[] strToHexByte(string hexString)        {            hexString = hexString.Replace(" ", "");            if ((hexString.Length % 2) != 0)                hexString += " ";            byte[] returnBytes = new byte[hexString.Length / 2];            for (int i = 0; i < returnBytes.Length; i++)                returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);            return returnBytes;        }        /// <summary>        /// 拼裝MAC魔術封包        /// </summary>        /// <param name="hexString"></param>        /// <returns></returns>        public static byte[] getMagicPacket(string macString)        {            byte[] returnBytes = new byte[102];            string commandString = "FFFFFFFFFFFF";            for (int i = 0; i < 6; i++)                returnBytes[i] = Convert.ToByte(commandString.Substring(i * 2, 2), 16);            byte[] macBytes = strToHexByte(macString);            for (int i = 6; i < 102; i++)            {                returnBytes[i] = macBytes[i % 6];            }            return returnBytes;        }

當然這只是在局域網(wǎng)中實現(xiàn)的,如果要在廣域網(wǎng)中實現(xiàn)的話還需要路由器映射等什么的,本文不做討論。

AMD官方的技術文檔:http://files.VEVb.com/zxlovenet/MagicPacket%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 城固县| 淄博市| 老河口市| 仁化县| 依安县| 和顺县| 定边县| 新宁县| 都昌县| 伊宁县| 抚宁县| 龙游县| 凤凰县| 璧山县| 陆川县| 济南市| 福清市| 宁晋县| 高要市| 普宁市| 邻水| 济南市| 墨脱县| 新巴尔虎右旗| 铜陵市| 大荔县| 阿城市| 四会市| 武义县| 乌拉特后旗| 朝阳市| 武乡县| 滨海县| 保德县| 秦皇岛市| 津南区| 东安县| 临洮县| 山东| 深水埗区| 沙洋县|