1. 程式人生 > >WOL封包遠端啟動封包JAVA程式碼

WOL封包遠端啟動封包JAVA程式碼

最近在搞樹莓派,自己利用遠端SSH寫了個遠端喚醒的工具,遠端SSH內網穿透用的是花生殼

用以下程式碼生成class檔案以後,寫到sh腳本里面,許可權改成755即可,進入到shell裡面後

sudo java SendPackage

然後遠端的時候直接 ./s.sh 即可實現開機

以下是核心程式碼,利用魔術封包實現遠端開機的類,使用前請確認已配置好網絡卡中的魔包啟動,同時BIOS設定中設定成網絡卡喚醒允許

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class SendPackage {
    public static void main(String args[]){
        try{
            //建立DatagramSocket類物件,此類表示用來發送和接收資料報包的套接字。
            DatagramSocket ds=new DatagramSocket();
            //建立要傳送的資料,並將資料打包
//            byte[] data="hello,我就是傳送端要傳送的資料".getBytes();
            String magicPacket = "FFFFFFFFFFFF";//魔術封包頭
            String mac = ""//這裡填入mac地址 格式"002000000000";
            String Stringdata = magicPacket + mac + mac + mac + mac + mac + mac + mac + mac + mac + mac + mac + mac + mac + mac + mac + mac;
            byte[] data = hexStringToByte(Stringdata);//十六進位制字串轉換成byte陣列,不可以直接用String中的toBytes方法
            //DatagramPacket類表示資料報包,用來實現無連線包投遞服務。
            //DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
            //該構造方法表示 構造資料報包
            //用來將長度為 length 偏移量為 offset 的包傳送到指定主機上的指定埠號。
            DatagramPacket dp=new DatagramPacket(data,0,data.length, InetAddress.getByName("192.168.199.255"),10000);
            //socket物件通過send方法傳送資料報包dp
            ds.send(dp);
            //關閉資源
            ds.close();
            //捕獲錯誤
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /** *//**
     * 把16進位制字串轉換成位元組陣列
     * @param hex
     * @return
     */
    public static byte[] hexStringToByte(String hex) {
        int len = (hex.length() / 2);
        byte[] result = new byte[len];
        char[] achar = hex.toCharArray();
        for (int i = 0; i < len; i++) {
            int pos = i * 2;
            result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));
        }
        return result;
    }

    private static byte toByte(char c) {
        byte b = (byte) "0123456789ABCDEF".indexOf(c);
        return b;
    }

}

相關推薦

WOL遠端啟動JAVA程式碼

最近在搞樹莓派,自己利用遠端SSH寫了個遠端喚醒的工具,遠端SSH內網穿透用的是花生殼 用以下程式碼生成class檔案以後,寫到sh腳本里面,許可權改成755即可,進入到shell裡面後 sudo java SendPackage 然後遠端的時候直接 ./s.sh 即可

一個簡單的SOCKET程序的數據結構和函數

... 服務 windows print class 學生 define bsp include /*練習寫套接字通信程序時候寫的一段代碼,本來想寫個聊天室但寫來寫去進度卡在界面上接節下來都是通信部分的代碼 因為只是試驗用所以都是用C寫的,等界面部分完工後會用類來封裝一下

使用 "java -jar"命令啟動jar時報不支持的jdk版本異常

err mage bus ron ces -s jdk1 con -418 在使用java -jar 命令啟動一個jar包的時候,提示版本不支持: 1 [[email protected] eureka-server-master]# java -jar xu

【華為】華為模擬器 huawei ensp 靜態動態NAT ICMP   wireshark抓驗證telnet明文傳輸密碼

【華為】華為模擬器huawei ensp 靜態動態nat icmp 封包   wireshark抓包驗證telnet明文傳輸密碼詳細實踐過程,請見下方附件!本文出自 “我的Linux之夢” 博客,請務必保留此出處http://12098022.blog.51cto.com/12088022/198

Springboot專案java -jar 啟動jar引數詳解

命令例項: nohup java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -jar $JAR_PATH/test-0.0.1-SNAPSHOT.jar --spring.profile

Unity C# 自定義TCP傳輸協議以及、解決粘問題(網路應用層協議)

本文只是初步實現了一個簡單的基於TCP的自定協議,更為複雜的協議可以根據這種方式去擴充套件。 網路應用層協議,通俗一點的講,它是一種基於socket傳輸的由傳送方和接收方事先協商好的一種訊息包組成結構,主要由訊息頭和訊息體組成。  眾所周知,基於socket的資訊互動有兩

Linux以jar形式啟動java專案

1、安裝Eclipse打包外掛Fat Jar 用以打jar  Fat Jar Eclipse Plug-In是一個可以將Eclipse Java Project的所有資源打包進一個可執行jar檔案的小

如何使用Eclipse將Java工程打包成Jar,並用bat檔案啟動Jar

作者:翁鬆秀 如何使用Eclipse將Java工程打包成Jar包,並用bat檔案啟動Jar包 如何使用Eclipse將Java工程打包成Jar包,並用bat檔案啟動Jar包 一、用Eclipse將Java工程打包成J

IntelliJ IDEA java項目導入jar,打jar

選項 可能 version make set 最好 tar project 沒有 一、導入 1、java項目在沒有導入該jar包之前,如圖: 2、點擊 File -> Project Structure(快捷鍵 Ctrl + Alt + Shift + s),

在Editplus中配置java的(帶)編譯(javac)和執行(java)的方法

會有 post 快捷方式 java程序 技術分享 不能 安裝路徑 一行 提示符 配置的前提是電腦安裝了JDK而且配置好了相關的環境變量(JAVA_HOME,path和classpath)。 配置好後在命令行中輸入javac和java驗證是否配置成功: 假設出現上

jar下載步驟 mysql-connector-java

解壓 -c mys mysql 如果 賬號 博文 mage 而且 禮悟: 好好學習多思考,尊師重道存感恩。葉見尋根三返一,活水清源藏於零。 虛懷若谷良心主,皓月當空自在王。願給最苦行無悔,誠勸且行且珍惜。   驗證時間為:2

Centos7服務器啟動jar項目最佳方式

例如 keyword 絕對路徑 col reg nbsp exec star stop jar後臺運行:nohup java -jar xx.jar >/dev/null & 此處的“>/dev/null”作用是將終端輸出信息輸

以jar方式啟動

rfi datetime lse ati 工具 vivo cms launcher lips 嗨,大家好~ ,在工作中,一個項目要部署到服務器上,我自己在工作中常見的部署tomcat和jar包方式部署的兩種方式。(其他的有待挖掘) 啊啊啊,公司正在做一個新的平臺,所

(轉)IntelliJ IDEA java項目導入jar,打jar

標簽 blank 窗口 ava setting structure 綠色 target bsp 以下為轉載原文:https://www.cnblogs.com/yulia/p/6824058.html 一、導入 1、java項目在沒有導入該jar包之前,如圖:

手動用tomcat啟動war,無法訪問web項目

tis 技術 file 分享圖片 conf xml文件 進入 目錄 正常 先說一下自己采的小坑,網上大多解答都是復制來復制去,不說重點在哪。我這裏簡單總結下訪問路徑問題 一、用idea打成war包,具體步驟如下圖: 步驟:在項目配置選Artifacts新建Web Appli

【eclipse jar】在編寫java程式碼時,為方便程式設計,常常會引用別人已經實現的方法,通常會封裝成jar,我們在編寫時,只需引入到Eclipse中即可。

Eclipse中匯入外部jar包 在編寫java程式碼時,為方便程式設計,常常會引用別人已經實現的方法,通常會封裝成jar包,我們在編寫時,只需引入到Eclipse中即可。 工具/原料 Eclipse

java+selenium的入門 案例 selenium 谷歌驅動 火狐驅動 IE驅動 (一)

目錄 前言 selenium是什麼? Selenium的下載使用 Selenium下載 Selenium下載地址 Selenium之谷歌驅動包 chromedriver包下載地址 Selenium使用 前言 在學習selenium之前,要了解selen

Java/半 原理與拆實戰(史上最全)

瘋狂創客圈 Java 聊天程式【 億級流量】實戰系列之13 【部落格園 總入口 】 本文的原始碼工程:Netty 粘包/半包原理與拆包實戰 原始碼 本例項是《Netty 粘包/半包原理與拆包實戰》 一文的原始碼工程。 寫在前面 大家好,我是作者尼恩。 為了完成了一個高效能的 Java 聊天程式,

springboot之遠端部署war

1,遠端tomcat配置管理員賬號, 詳情請看此篇部落格 傳送 2,修改pom檔案 新增外掛: <plugin> <groupId>org.apache.tomcat.maven</groupId>

通過自己的java程式碼打成parcel,並生成sha檔案

以自己寫的一個java程式為例 1. 製作parcel包 1.1 我的程式結構如下: [[email protected] nameaddress-1.0]# cd nameaddress/ [[email protected] nameaddress]# ll 總用