zoukankan      html  css  js  c++  java
  • 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到结尾,去两端)

  • 相关阅读:
    POJ 1470 -- Closest Common Ancestors
    js跳转链接的几种方式
    vue移动端项目经验(二)
    css项目知识小汇总
    浏览器滚动条样式自定义(兼容火狐)
    媒体查询
    vue移动端项目经验
    文字溢出时省略号表示
    vue2.0-4.0的移动端及PC端屏幕大小适配
    vue移动端UI组件库
  • 原文地址:https://www.cnblogs.com/who-else/p/7510927.html
Copyright © 2011-2022 走看看