最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java獲取IP地址以及MAC地址的示例代碼

 更新時間:2024年04月03日 09:51:24   作者:碼農(nóng)研究僧  
IP地址是用于在網(wǎng)絡(luò)上識別設(shè)備的唯一地址,而MAC地址是設(shè)備的物理地址,本文主要介紹了Java獲取IP地址以及MAC地址的示例代碼,具有一定的參考價值,感興趣的可以了解一下

前言

需要獲取客戶端的IP地址以及MAC地址

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class test {

    public static void main(String[] args) {
        try {
            // 執(zhí)行命令
            Process process = Runtime.getRuntime().exec("ipconfig /all");
            // 讀取命令輸出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                // 輸出命令結(jié)果
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

純用CMD可能權(quán)限不夠,可能格式可能亂碼等問題

在這里插入圖片描述

后續(xù)轉(zhuǎn)為網(wǎng)絡(luò)編程API接口

網(wǎng)絡(luò)適配器的 IPv4 和 MAC 地址,最好直接使用 Java 的網(wǎng)絡(luò)編程 API,而不是通過執(zhí)行系統(tǒng)命令來獲取,可以使用 java.net.NetworkInterface 類來獲取網(wǎng)絡(luò)接口的信息,然后進一步篩選出所需的適配器信息

  • 在獲取本地主機信息時,要考慮多網(wǎng)卡的情況,確保準確獲取所需的網(wǎng)絡(luò)適配器信息
  • 對于操作系統(tǒng)信息的獲取,可以考慮使用更可靠的方式,如 System.getProperty() 方法

1. IP及MAC

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class test {

    public static void main(String[] args) {
        try {
            // 獲取所有網(wǎng)絡(luò)接口
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                // 輸出網(wǎng)絡(luò)接口名稱
                System.out.println("Network Interface: " + networkInterface.getDisplayName());
                // 獲取該網(wǎng)絡(luò)接口的所有地址
                Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress address = addresses.nextElement();
                    // 輸出地址信息
                    System.out.println("  Address: " + address.getHostAddress());
                }
                // 獲取 MAC 地址
                byte[] mac = networkInterface.getHardwareAddress();
                if (mac != null) {
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < mac.length; i++) {
                        sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
                    }
                    // 輸出 MAC 地址
                    System.out.println("  MAC Address: " + sb.toString());
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
}

截圖如下:

在這里插入圖片描述

2. 特定適配器

不同電腦可能特定的適配器不大一樣,具體Demo看自身

package com.example.test;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class test {

    public static void main(String[] args) {
        try {
            // 獲取所有網(wǎng)絡(luò)接口
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                // 檢查是否是你想要的網(wǎng)絡(luò)適配器,這里假設(shè)名字為 "VMware Network Adapter VMnet8"
                if (networkInterface.getDisplayName().equals("VMware Virtual Ethernet Adapter for VMnet8")) {
                    // 獲取該網(wǎng)絡(luò)接口的所有地址
                    Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                    while (addresses.hasMoreElements()) {
                        InetAddress address = addresses.nextElement();
                        // 過濾 IPv4 地址
                        if (address instanceof java.net.Inet4Address) {
                            // 輸出 IPv4 地址
                            System.out.println("IPv4 Address: " + address.getHostAddress());
                        }
                    }
                    // 獲取 MAC 地址
                    byte[] mac = networkInterface.getHardwareAddress();
                    if (mac != null) {
                        StringBuilder sb = new StringBuilder();
                        for (int i = 0; i < mac.length; i++) {
                            sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
                        }
                        // 輸出 MAC 地址
                        System.out.println("MAC Address: " + sb.toString());
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
}

截圖如下:

在這里插入圖片描述

到此這篇關(guān)于Java獲取IP地址以及MAC地址的示例代碼的文章就介紹到這了,更多相關(guān)Java獲取IP地址以及MAC地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Spring Cloud CLI簡單介紹

    Spring Cloud CLI簡單介紹

    本文我們將介紹Spring Boot Cloud CLI(或簡稱Cloud CLI)。該工具為Spring Boot CLI提供了一組命令行增強功能,有助于進一步抽象和簡化Spring Cloud部署。感興趣的小伙伴們可以參考一下
    2018-12-12
  • Java基于SpringBoot和tk.mybatis實現(xiàn)事務(wù)讀寫分離代碼實例

    Java基于SpringBoot和tk.mybatis實現(xiàn)事務(wù)讀寫分離代碼實例

    這篇文章主要介紹了Java基于SpringBoot和tk.mybatis實現(xiàn)事務(wù)讀寫分離代碼實例,讀寫分離,基本的原理是讓主數(shù)據(jù)庫處理事務(wù)性增、改、刪操作,而從數(shù)據(jù)庫處理SELECT查詢操作,數(shù)據(jù)庫復制被用來把事務(wù)性操作導致的變更同步到集群中的從數(shù)據(jù)庫,需要的朋友可以參考下
    2023-10-10
  • 淺談十個常見的Java異常出現(xiàn)原因

    淺談十個常見的Java異常出現(xiàn)原因

    這篇文章主要介紹了十個常見的Java異常出現(xiàn)原因,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Fluent Mybatis學習之Update語法實踐

    Fluent Mybatis學習之Update語法實踐

    Fluent MyBatis是一個MyBatis的增強工具,沒有對mybatis做任何修改。本篇文章將詳細介紹對Fluent Mybatis中的update語法進行驗證。代碼具有一定價值,感興趣的小伙伴可以學習一下
    2021-11-11
  • SpringBoot 文件或圖片上傳與下載功能的實現(xiàn)

    SpringBoot 文件或圖片上傳與下載功能的實現(xiàn)

    這篇文章主要介紹了SpringBoot 文件或圖片上傳與下載功能的實現(xiàn),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 關(guān)于SpringBoot整合RabbitMQ實現(xiàn)死信隊列

    關(guān)于SpringBoot整合RabbitMQ實現(xiàn)死信隊列

    這篇文章主要介紹了關(guān)于SpringBoot整合RabbitMQ實現(xiàn)死信隊列,死信隊列實際上就是一個普通的隊列,只是這個隊列跟死信交換機進行了綁定,用來存放死信而已,需要的朋友可以參考下
    2023-05-05
  • Java JDK1.5、1.6、1.7新特性整理

    Java JDK1.5、1.6、1.7新特性整理

    這篇文章主要介紹了Java JDK1.5、1.6、1.7新特性整理,需要的朋友可以參考下
    2016-10-10
  • java?JUC信號量Semaphore原理及使用介紹

    java?JUC信號量Semaphore原理及使用介紹

    這篇文章主要為大家介紹了java?JUC信號量Semaphore原理及使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀

    SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀

    這篇文章主要介紹了SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀,在Spring Boot中,映射規(guī)則是用來定義URL與控制器方法之間的映射關(guān)系的,通過映射規(guī)則,可以將特定的URL請求映射到相應(yīng)的控制器方法上,從而實現(xiàn)請求的處理和響應(yīng)的返回,需要的朋友可以參考下
    2023-10-10
  • Java高性能本地緩存框架Caffeine的實現(xiàn)

    Java高性能本地緩存框架Caffeine的實現(xiàn)

    本文主要介紹了Java高性能本地緩存框架Caffeine的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論

台中市| 南丰县| 屏东市| 油尖旺区| 遂溪县| 介休市| 彩票| 偃师市| 库尔勒市| 万年县| 长沙县| 湘阴县| 资阳市| 旺苍县| 保山市| 朔州市| 曲水县| 德令哈市| 丰台区| 荣昌县| 金阳县| 白玉县| 枞阳县| 辉县市| 武安市| 潮州市| 荥阳市| 清丰县| 喀什市| 巴中市| 灵丘县| 军事| 汾阳市| 丰顺县| 东至县| 亚东县| 云南省| 明光市| 堆龙德庆县| 赤峰市| 中牟县|