• java实现远程开机


    import java.io.IOException;
    import java.net.*;public class 远程开机 {
    
        public static void main(String[] args)  {
    
            DatagramSocket ds = null; 
    
            try {
              ds = new DatagramSocket(9999);  //指定自己的port  
            } catch (SocketException e) {
                System.out.println(e.getMessage());
            }
            byte a = Integer.valueOf(0xb8).byteValue();
            byte b = Integer.valueOf(0x97).byteValue();
            byte c = Integer.valueOf(0x5a).byteValue();
            byte d = Integer.valueOf(0x68).byteValue();
            byte e = Integer.valueOf(0x64).byteValue();
            byte f = Integer.valueOf(0x6f).byteValue();
            byte g = Integer.valueOf(0xff).byteValue();
            byte[] buf= {g,g,g,g,g,g,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f,a,b,c,d,e,f};
    
            //(0xb8)(0x97)(0x5a)(0x68)(0x64)(0x6f)
            InetAddress address = null ;
            try {
                address = InetAddress.getByName("255.255.255.255");  //目标广播地址  
            } catch (UnknownHostException o) {
                System.out.println(o.getMessage());
            }
            DatagramPacket dp =
                    new DatagramPacket(buf, buf.length, address , 2222);  //2222为目标端口,只要是合法端口就可以(65535以内)
    
            try {
                ds.send(dp);  //发送数据  
            } catch (IOException o) {
                    System.out.println(o.getMessage());
            }       
            ds.close();
        }
    }   

    以上就是对于我的电脑需要用到的远程开机.java

    其中(0xb8)(0x97)(0x5a)(0x68)(0x64)(0x6f)是我的电脑的MAC地址:b8:97:5a:68:64:6f,改成自己的编译一下就可以用,代码有点烂,发送的地址只要是局域网广播地址就可以。

    至于原理百度百科远程开机中讲的很详细,我只做一点赘述:发送的包中必须有重复6次的ff加上重复16次的MAC地址,中间没有任何符号,一共就是1*6+6*16=102个字节(ff是16进制,二进制就是11111111,十进制就是255)。

    下面是运行 远程开机.class 抓到的包

    这是我抓到的包,可以看到包中含有那102个字节(50到结尾,去两端)

  • 相关阅读:
    test14
    test13
    test12
    test11
    Xcode常用快捷键
    OC弱语法
    对象的结构体属性的成员修改
    IOS 获取手机各种信息
    IOS app启动过程
    iOS退出键盘的两种方式
  • 原文地址:https://www.cnblogs.com/who-else/p/7510927.html
Copyright © 2020-2023  润新知