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