0

0

Java实现远程开关机(网络唤醒)

雪夜

雪夜

发布时间:2025-08-26 08:22:13

|

675人浏览过

|

来源于php中文网

原创

大家好,又见面了,我是你们的朋友全栈君。

Java实现远程开关机是做的一个在局域网下实现一台机器对多台机器的开关机控制 远程唤醒实现 是通过电源的一种协议进行控制的,需要知道被唤醒机器的mac地址

首先要须知: 网络唤醒条件 网络唤醒需要终端的主板和网卡支持,需要先在BIOS设置支持网络唤醒 网络唤醒要接通电源保证网卡能通电 要接网线 不能是wifi 如果强制关机 可能不能通过网络唤醒来开机 跨交换机或者跨路由的话就有可能不支持唤醒 跨多层交换机的话即使ping通也未必能唤醒 在同一网段下进行网络唤醒最为省事

下面对被唤醒机器惊醒配置(要不就乱套啦,在公司想开谁的机器都可以啦) 1、先进入BIOS中开启网络唤醒功能,在BIOS中找到“OnBoard LAN”选项,将它设成“Enabled”。同时将“POWER MANAGEMENT SETUP(电源管理设置)”下的“Power On by LAN/Ring”选项设为“Enabled”,最后将“Wake On LAN(网络唤醒)”选项设置为“Enabled”,设置好后保存退出。

立即学习Java免费学习笔记(深入)”;

2、右击“我的电脑”并选择“管理”选项,在随后出现的“计算机管理”窗口中找到“设备管理”,在设备列表中找到“网络适配器”下的本地网卡(注意是有线网卡),右击本地网卡并选择“属性”,在弹出的对话框中选择“高级”页签,选择“Wake on Magic Package”或“网络唤醒”选项并将其值设置为“开启”,在同一个窗口中选择“电源管理”页签,在“允许设备唤醒计算机”以及“只允许幻数据包唤醒计算机”选项前打钩,点击【确定】按钮;

Java实现远程开关机(网络唤醒)
Java实现远程开关机(网络唤醒)

上面就是配置啦!!!

下面上代码

代码语言:javascript代码运行次数:0运行复制
String mac = "" //mac地址try {                            int port = 7;                        byte[] macByte = new byte[6];                        String[] ips = mac.split("\\:|\\-");                        for (int i = 0; i < 6; i++) {                                macByte[i] = (byte) Integer.parseInt(ips[i], 16);                        }                        // 用来存储网络唤醒数据包                        byte[] bys = new byte[6 + 16 * macByte.length];                        for (int i = 0; i < 6; i++) {                                bys[i] = (byte) 0xff;                        }                        for (int i = 6; i < bys.length; i += macByte.length) {                                System.arraycopy(macByte, 0, bys, i, macByte.length);                        }                        // 将字符形式的IP地址转换成标准的IP地址                        // InetAddress address = InetAddress.getByName(ip);                        InetAddress address = InetAddress.getByName("255.255.255.255");                        // 生成标准的数据报                        DatagramPacket pack = new DatagramPacket(bys, bys.length, address, port);                        // 创建标准套接字,用来发送数据报                        DatagramSocket socket = new DatagramSocket();                        // 发送魔法包                        socket.send(pack);                        socket.close();                    } catch (Exception e) {                            e.printStackTrace();                    } catch (Throwable e) {                            e.printStackTrace();                    }

唤醒到此结束… 补充:远程唤醒的机器如果有密码,还需要输入密码,如果每台我们都输入密码的话 我们还不低自己开机那,所以可以设置默认密码,电脑每次开机都不需要输入。这个可以在网上查一下,挺多的。

远程关机 远程关机也需要一些配置,要不更加乱套。 1、在要重新启动或远程关机的计算机上,按Windows键+ R,键入:regedit,然后按键盘上的Enter。 找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

Java实现远程开关机(网络唤醒)

2、右击system 选择新建 DWORD(32位)值

极限网络办公Office Automation
极限网络办公Office Automation

专为中小型企业定制的网络办公软件,富有竞争力的十大特性: 1、独创 web服务器、数据库和应用程序全部自动傻瓜安装,建立企业信息中枢 只需3分钟。 2、客户机无需安装专用软件,使用浏览器即可实现全球办公。 3、集成Internet邮件管理组件,提供web方式的远程邮件服务。 4、集成语音会议组件,节省长途话费开支。 5、集成手机短信组件,重要信息可直接发送到员工手机。 6、集成网络硬

下载
Java实现远程开关机(网络唤醒)

3、输入以下标签:LocalAccountTokenFilterPolicy

Java实现远程开关机(网络唤醒)

4、双击该值,然后将该值更改为1。

Java实现远程开关机(网络唤醒)

退出注册表,然后重新启动计算机以确认更改

还有远程关机必须要设置密码!!!(重点) 下面上代码

代码语言:javascript代码运行次数:0运行复制
String ip = "";   //ipString user = "";   //被关机器用户名String passwd = "";   //被关机器密码try {                                Runtime.getRuntime().exec("net use * /del /y");                            Process process = Runtime.getRuntime().exec("net use \\\\"+ip+"\\ipc$ \""+passwd+"\" /user:\""+user+"\"");                            int i = process.waitFor();//等待命令执行完                            if (i == 0){                                    Runtime.getRuntime().exec("shutdown -s -t 0 -m \\\\"+ip+" -c \"test\" -f");                            }                        } catch (Exception e) {                                e.printStackTrace();                        }

关机结束… 补充:关机这一块主要是用cmd里的命令惊醒关机,前提要保持可以ping通 说一下命令的意思:

代码语言:javascript代码运行次数:0运行复制
net use * /del /y   

清除所有已连接的通道,每次操作时要执行一下,不然可能会提示通道已占用的错误

代码语言:javascript代码运行次数:0运行复制
net use \\ip\ipc$ "密码" /user:"用户名"

打开通道

代码语言:javascript代码运行次数:0运行复制
shutdown -s -t 0 -m \\192.168.20.200 -c "test" -f

关机命令 可以用这三个命令在cmd中试一下

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137180.html原文链接:https://javaforall.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

397

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

784

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1129

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

803

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

454

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2354

2023.08.08

windows自动更新
windows自动更新

Windows操作系统的自动更新功能可以确保系统及时获取最新的补丁和安全更新,以提高系统的稳定性和安全性。然而,有时候我们可能希望暂时或永久地关闭Windows的自动更新功能。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

823

2023.08.10

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8万人学习

Excel 教程
Excel 教程

共162课时 | 14.2万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号