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实现远程开机的更多相关文章

  1. java代码实现网络远程开机

    http://my.oschina.net/kingfire/blog/156764 概述 远程开机(Wake onLAN)是指通过网络实现对服务器或者pc启动运行,现在很多网卡都支持的这个功能. 其 ...

  2. paip. java resin 远程 调试 java resin remote debug

    paip. java resin 远程 调试 java resin remote debug 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 ...

  3. Java SSH远程执行Shell脚本实现(转)

    前言 此程序需要ganymed-ssh2-build210.jar包(下载地址:http://www.ganymed.ethz.ch/ssh2/) 为了调试方便,可以将\ganymed-ssh2-bu ...

  4. C#实现局域网内远程开机

    1.远程开机原理 远程开机Wake on LAN(WOL),俗称远程唤醒,远程唤醒的实现主要是向目标主机发送特殊格式的数据包,是AMD公司制作的MagicPacket这套软件以生成网络唤醒所需要的特殊 ...

  5. java下载远程文件到本地

    java下载远程文件到本地(转载:http://www.cnblogs.com/qqzy168/archive/2013/02/28/2936698.html)   /**       * 下载远程文 ...

  6. Python 远程开机

    用 Python 关机你肯定听过或者实践过,那么用 Python 开机呢?这是一个神奇的方法,教你如何用 Python 来开机. 本文目标 远程开机原理 Python 远程开机代码实现 Python ...

  7. 在Eclipse中运行JAVA代码远程操作HBase的示例

    在Eclipse中运行JAVA代码远程操作HBase的示例 分类: 大数据 2014-03-04 13:47 3762人阅读 评论(2) 收藏 举报 下面是一个在Windows的Eclipse中通过J ...

  8. Java Web 远程调试

    Java Web 远程 调试 Tomcat 下载压缩版服务器 环境:Tomcat.Eclipse,做远程调试我们并不需要其他特殊插件 1.配置Tomcat/bin/startup.bat 在前面增加代 ...

  9. C#实现远程开机(局域网测试通过)

    首先介绍相关知识. UDP协议 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联 ...

随机推荐

  1. override与重载的区别

    override与重载的区别override 与重载的区别,重载是方法的名称相同.参数或参数类型不同,进行多次重载以适应不同的需要 Override 是进行基类中函数的重写.

  2. 大白话讲解BP算法(转载)

    最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进 ...

  3. 日常运维管理技巧一(查看负载 W)

    日常运维管理技巧一(查看负载 W) 今天针对Linux系统管理做一个专题的记录,以后会用的几率也是很大的,只要掌握必备的基础知识,做初级系统管理员是不成问题的. 作为一个运维工程师.系统管理员,如果对 ...

  4. JQuery 解决按钮上的倒计时问题

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  5. C编程经验总结4

    {}体里的语句不管在一行还是在多行,之间都是要有: for与for之间可以是独立的,也可以是相互嵌套的 For( ; i<5; )=for( ;i<=4;  ) 一般都是在循环里面进行判断 ...

  6. django+xadmin在线教育平台(十五)

    7-4 课程机构列表页数据展示2 前去html中进行数据填充   mark 可以看到所有城市是通过a标签,当前选中城市为active.   mark 之后把下面的写死的城市删除掉.   mark 这时 ...

  7. IDEA怎么生成UML类图

    说之前先说一下Diagram这个单词,意思是图表; 示意图; 图解; [数] 线图的意思. 打开设置 File->Setting或windows下按Ctrl+Alt+S 在搜索框中输入Diagr ...

  8. docker官方仓库下载镜像

    官方仓库镜像地址:https://hub.docker.com/search/ 以下载mysql为例 进入到详情页后我们看到有很多Tags 我们选择5.7.25版本进行下载 # docker pull ...

  9. ES6笔记02-箭头函数

    eg1:// ES5 匿名函数 var total = values.reduce(function (a, b) { return a + b; }, 0); // ES6 匿名函数 var tot ...

  10. python系列4之装饰器

    目录 递归算法解析 冒泡排序解析 装饰器解析 一. 递归 1. 递归的定义 递归(Recursion),又成为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法.递归一词还较长用于描述以 ...