`
dss16694
  • 浏览: 144191 次
社区版块
存档分类
最新评论

远程发送开机指令

阅读更多

转发一段用java发送远程开机数据包的代码:

另外,在线发送的网址:http://www.depicus.com/wake-on-lan/woli.aspx

 

package com.lh.openOS;
 
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
 
public class TestOpenOS
{
    private int port = 10000;
    private String mac = "8C-89-A5-19-82-9A";
    private String ipAddress = "255.255.255.255";
 
    public TestOpenOS()
    {
        // TODO Auto-generated constructor stub
    }
     
    private void setMac(String mac)
    {
        this.mac = mac;
    }
     
    public TestOpenOS(int port, String mac, String ipAddress)
    {
        this.port = port;
        this.mac = mac;
        this.ipAddress = ipAddress;
    }
 
    public void sendOpenOS()
    {
        InetAddress destHost = null;
        DatagramSocket ds = null;
        try
        {
            destHost = InetAddress.getByName(ipAddress);
            byte[] destMac = getMacBytes(mac);
            byte[] magicBytes = new byte[102];
 
            // 将数据包的前六位放入0xFF即“FF”的二进制
            // 发一个BroadCast包,包的内容包括以下数据就可以了。
            // FF FF FF FF FF FF,6个FF是数据的开始,
            // 紧跟着16次MAC地址就可以了。
            for (int i = 0; i < 16; i++)
            {
                for (int j = 0; j < destMac.length; j++)
                {
                    magicBytes[6 + destMac.length * i + j] = destMac[j];
                    magicBytes[j] = (byte) 0xFF;
                }
            }
 
            // --------------------查看数据报发出的数据---------------------
            for (int i = 1; i <= 102; i++)
            {
                if (((i - 1) % 6) == 0)
                {
                    System.out.println();
                }
                System.out.print(magicBytes[i - 1] + "===");
            }
 
//          System.out.println("port =" + port + ", destHost=" + destHost + ",magicBytes.length = " + magicBytes.length);
             
             
            DatagramPacket dp = null;
            try
            {
                dp = new DatagramPacket(magicBytes, magicBytes.length, destHost, port);
                ds = new DatagramSocket();
                ds.send(dp);
            }
            catch (Exception e)
            {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
        catch (Exception e)
        {
            // TODO: handle exception
            e.printStackTrace();
        }
        finally
        {
            if (null != ds)
            {
                //关闭数据报流
                ds.close();
            }
        }
    }
 
    // 远程关机
    public void sendCloseOS()
    {
 
    }
     
    /**
     *  将16进制的mac地址转换为二进制 
     * @param macStr
     * @return 
     * @throws IllegalArgumentException
     */
    private static byte[] getMacBytes(String macStr) throws IllegalArgumentException
    {
        byte[] bytes = new byte[6];
        String[] hex = macStr.split("(\\:|\\-)");
        if (hex.length != 6)
        {
            throw new IllegalArgumentException("mac 地址有问题,你看看对不对?Invalid MAC address.");
        }
        try
        {
            for (int i = 0; i < 6; i++)
            {
                bytes[i] = (byte) Integer.parseInt(hex[i], 16);
            }
        }
        catch (NumberFormatException e)
        {
            throw new IllegalArgumentException("Invalid hex digit in MAC address.");
        }
        return bytes;
    }
 
    public static void main(String[] args)
    {
        TestOpenOS w = new TestOpenOS();
        w.sendOpenOS();
         
        w.setMac("8C-89-A5-19-80-3D");
        w.sendOpenOS();
    }
}

 

 

分享到:
评论

相关推荐

    vc写的局域网远程开机程序

    现在很多主板都有远程唤醒的功能、只要接通电源、与局域网连上、就可以通过发送一个指令到特定网卡(MAC地址)就能开机. 我将程序集成了一下,可以通过主机名或者ip地址就得到局域网内任何一台电脑的mac地址。这样...

    易语言远程控制技术教程

    1.发送指令 22 2.对话聊天 22 3.监视屏幕 23 4.遥控功能 25 5.了解信息及修改信息 26 5.TELNET超级终端 26 6.文件传输 27 7.鼠标键盘录制 28 8.隐藏进程 28 9.开机启动运行 29 10.正常关机 29 11.多用户...

    WakeOnLanGui

    该功能可以当电脑处于关机或休眠状态时,通过给网卡发送特定的数据包从而命令网卡向主板发送开机指令,进而实现上电开机。 可见,网络唤醒需要硬件(主要是主板和网卡)的支持。目前几乎所有品牌的硬件都支持WOL...

    消费电子中的基于Internet的工业空调智能控制器的软硬件设计

    摘要: 本文阐述了基于Internet的工业空调智能控制器的软硬件...除了要完成常规的功能以外,还要和外部网络进行通信,接收远程用户通过Internet发送过来的指令,分析指令并执行相应的操作,根据需要返回设备的工作状态

    基于Internet的工业空调智能控制器的软硬件设计

    摘要: 本文阐述了基于Internet的工业空调智能控制器的软硬件...除了要完成常规的功能以外,还要和外部网络进行通信,接收远程用户通过Internet发送过来的指令,分析指令并执行相应的操作,根据需要返回设备的工作状态

    摄像头监控软件 +论文

    二、该软件支持远程控制(本远程控制不是指远程控制别人的摄像头,而是对本软件进行远程控制):(只要可以登上您设置的邮箱就行)对监控软件下达指令,如打开、关闭某个摄像头;要求某个摄像头截实时图片发送到邮箱...

    服务器基础知识介绍(服务器全部组件).pdf

    BMC的主要功能 通过系统的串口进行访问 故障日志记录和 SNMP 警报发送 访问系统事件日志 (System Event Log ,SEL) 和传感器状况 控制包括开机和关机 独立于系统电源或工作状态的支持 模拟KVM 通过远程连接服务器的...

    泰德瑞usb摄像头监控软件

    二、该软件支持远程控制(本远程控制不是指远程控制别人的摄像头,而是对本软件进行远程控制):当您不在电脑前时,您可以依据《说明书》中的指令说明,通过手机、电脑、ipad等一切设备(只要可以登上您设置的邮箱就...

    cmd操作命令和linux命令大全收集

    51. mstsc----------远程桌面连接 53. magnify--------放大镜实用程序 54. mmc------------打开控制台 55. mobsync--------同步命令 57. iexpress-------木马捆绑工具,系统自带 58. fsmgmt.msc-----共享文件夹...

    Google Android SDK开发范例大全(第3版) 1/5

    超酷的娱乐多媒体设计:触控移动事件、建立手势、手势判断控制、屏幕保护程序、启动动画、mp3播放器、3gp影片播放、相机预览拍照、自动对焦、调整音量、信息指令遥控手机、录音控制、自定义动画按钮等 Web Service...

    Google Android SDK开发范例大全(第3版) 4/5

    超酷的娱乐多媒体设计:触控移动事件、建立手势、手势判断控制、屏幕保护程序、启动动画、mp3播放器、3gp影片播放、相机预览拍照、自动对焦、调整音量、信息指令遥控手机、录音控制、自定义动画按钮等 Web Service...

    Google Android SDK开发范例大全(第3版) 3/5

    超酷的娱乐多媒体设计:触控移动事件、建立手势、手势判断控制、屏幕保护程序、启动动画、mp3播放器、3gp影片播放、相机预览拍照、自动对焦、调整音量、信息指令遥控手机、录音控制、自定义动画按钮等 Web Service...

    Google Android SDK开发范例大全(第3版) 5/5

    超酷的娱乐多媒体设计:触控移动事件、建立手势、手势判断控制、屏幕保护程序、启动动画、mp3播放器、3gp影片播放、相机预览拍照、自动对焦、调整音量、信息指令遥控手机、录音控制、自定义动画按钮等 Web Service...

    计算机应用技术(实用手册)

    此项目可选择硬盘开机的优先级,按下的按键,你可以进入它的子选单,它会显示出已侦测到可以让您选择开机顺序的硬盘,以用来启动系统。当然,这个选项要在你安装了两块或者两块以上的系统才能选择! HDD Change ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。 halt 1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户。 2.格式 halt...

    CISCO 技术大集合

    登录远程主机 telnet hostname|IP address 网络侦测 ping hostname|IP address 路由跟踪 trace hostname|IP address   6. 基本设置命令 任务 命令 全局设置 config terminal 设置访问用户及密码 username ...

Global site tag (gtag.js) - Google Analytics