需要关机的机器运行一个程序socked,负责接收包,如有符合的,
则调用WIN API 关机函数既可

解决方案 »

  1.   

    是啊,是开机不是关机啦,关机有什么难的?我现在有支持这个带ROM网卡啦,关键是代码
      

  2.   

    一段有关文章:如何实现网络唤醒开机 
    作者:姚雷 --------------------------------------------------------------------------------
     
    •文章类型:网络技术
    •文章等级:4
    •适用读者:高级
    •软件下载:http://www.amd.com/products/npd/software
           /pcnet_pamily/drivers/magicpacket.htm
    •文章下载:hanx.zip
     --------------------------------------------------------------------------------
       随着计算机技术的不断发展,新一代的主板都提 供了键盘或鼠标开机(Keyboad/Mouse Power Up)、 调制解调器唤醒开机(M0dem Wake Up)和网络唤醒 开机(Wake On Lan)等功能,前几项大家都用得较,也比较熟悉,但网络唤醒开机由于需要特殊的软 硬件支持,加上介绍这方面情况的资料也很少,因此, 知之者甚少,很多用户在已有硬件支持的情况下,却 不知道怎样才能实现网络唤醒开机。本文将详细说明 网络唤醒开机的原理以及如何实现该功能。一、网络开机原理  如果要想通过网络唤醒一台指定的计算机,那 么就必须知道能标识该计算机的身份号。由于被唤醒 的计算机处于关机状态,因此其内部的IP地址和计 算机名字也就消失了,唯一能标识其身份的只有其内 部网卡的物理地址,即MAC地址。该地址是唯一的, 而且每块网卡的MAC地址均不相同。在知道被唤醒的 计算机MAC地址后,通过另外一台计算机运行相应的 软件,向网络上发出含有该地址的特殊数据包。这 时,被要求唤醒的计算机虽然处于关机状态,但是其 内部网卡控制芯片通过专用联线所送来的电流,仍然 可以接受和处理网络上的数据包,因此控制芯片通过 比较数据包内的MAC地址,就可确认自己就是该数据 包的收件者,然后通过专用联线发出开机信号,通知 主板开机启动。二、硬件要求  网络唤醒开机必须有相应的硬件支持才行。首先 要有主板支持,现在新一代的主板大都支持该功能, 而且在土板上有一个三脚插座,一般都在PCI插槽附 近,旁边标注“WOL”。其次网卡必须支持,这类网卡 在其板子上比一般的网卡多了一个三脚插座,并且通 常还附带了一条专用的三芯联接线,该线就是用来连 接主板和网卡。最后还必须使用ATX电源,而且其+5V Standbv电流必须比较大,根据Intel的建议规格, 需要600mA以上。该电流的大小可以从电源外部标识 中的+5VSB栏里查到。  须要说明的是,对于某些国外品牌机而言,比如 笔者所使用的AST-Premium98计算机,因其主板上已 经集成了具有网络唤醒功能的网卡,所以没有什么三 脚插座,也不需要专用的三芯联线。三、软件要求  为了唤醒网络上的计算机,必须发出一种特殊的 数据包,该数据包的格式与普通数据包不同,而且还 必须使用相应的专用软件才能产生。当前普遍采用的 是AMD公司制作的Magic Packedt1.O这套软件何 以生成网络唤醒所需要的特殊数据包,俗称魔术包 (Magic Packet)。该数据包包含有连续6个字节的 “FF”和连续重复16次的MAC地址。 Magic Packet格 式虽然只是AMD公司开发推广的技术,并非世界公认 的标准,但是仍然受到很多网卡制造商的支持,因此 许多具有网络唤醒功能的网卡都能与之兼容。  Magic Packet1.0软件可以从因特网上下载: http://www.amd.com/products/npd/software/ pcnet_famlly/drivers/maslcpacket.html,文件名是 magicpkt.exe,文件大小为 9OO多KB。四、Magic Packet软件使用说明  从因特网上下载magic_pkt.exe后,直接运行它 就可开始安装。该软件默认安装在 c:\pcnet\magic_ pkt目录下,执行该目录下的magpac.exe即可运行软件(为了使用方便,可以自己动手在桌面上建立一个 快捷方式)运行magp ac.exe。  选择Magic packets菜单栏中的Power On one Host选项,出现画面。在Destiination Ethernet Ad dress对话框中填入所要唤醒的计算机MAC地 址,然后按Send 按钮,该计算机就会被唤醒开机 启动。  当然该计算 杉BIOS中Wake On LAN或者 ResuMe by LAN选项 必须设置为Enable,至于网卡的MAC地址,可运行该 网卡的设置软件获得,或者就直接运行winipcfg.exe。  其中适配器地址栏中所显示的数字就是MAC地址。该软件还有一些别的功能,如管理多台计算机定时开机等等,具体操作大家可参考其帮助文件。  
      

  3.   

    使用NMUDP:
    procedur TForm1.Button1Click(Sender: TObject);
    var
      SendCode:string;
      TempStr:string;
      i:byte;
    begin
      SendCode:=StringofChar(#255,6);
      for i:=0 to 15 do
          begin
          TempStr:=TempStr
                  +string(char($00))
                  +string(char($50))
                  +string(char($BA))
                  +string(char($EC))
                  +string(char($71))
                  +string(char($A6));
          end;
      SendCode:=SendCode+TempStr;
      UDPSend(SendCode);
    end;
    procedure TForm1.UDPSend(SendCode: String);
    var
      SendMStream:TMemoryStream;
    begin
      SendMStream:=TMemoryStream.Create;
      try
        NMUDP1.ReportLevel:=1;
        NMUDP1.RemoteHost:='188.0.255.255';
        NMUDP1.RemotePort:=7010;
        SendMStream.Write(SendCode[1],length(SendCode));
        NMUDP1.SendStream(SendMStream);
      finally
        SendMStream.Free;
      end;
    end;