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到结尾,去两端)

最新文章

  1. java实现双链表(差点没写吐系列...)
  2. python下ssh的简单实现
  3. hibernate中保存一个对象后再设置此对象的属性为什么不需要调用update方法了
  4. asp.net网站优化经验之谈
  5. mysql数据库 myisam数据存储引擎 表由于索引和数据导致的表损坏 的修复 和检查
  6. USACO Section 3.3: Riding the Fences
  7. Maven之 学习资料
  8. Android的SoundPool
  9. 新闻滚动marquee标签
  10. UI 响应者链
  11. android maven eclipse里面新建mavenprojectThe desired archetype does not exist
  12. echarts之词云随机颜色的配置
  13. 将指定目录中的txt文件转化成excel文件
  14. [第二届构建之法论坛] 预培训文档(Java版)
  15. Java作业三(2017-9-25)
  16. 初学者如何迅速学习web前端开发
  17. BZOJ2242[SDOI2011]计算器——exgcd+BSGS
  18. Python代码打印出9*9 九九乘法表
  19. 关于ionic2打包android时gradle下载不了的解决方法(附:简单优化启动速度彩蛋)
  20. centos 7中监控mysql 数据库脚本(监控端口)

热门文章

  1. 瓣呀,一个基于豆瓣api仿网易云音乐的开源项目
  2. textkit
  3. JavaScript对象回收机制
  4. 什么是web语义化?
  5. PLC状态机编程第六篇-优化PLC程序生成
  6. flask-login原理详解
  7. 1,VMware与Centos系统安装
  8. 7,vim
  9. Pycharm的使用一
  10. 论如何入门地使用vscode