javamac地址,macmac地址是什麼

本文目錄一覽:

java怎麼生成本機mac地址

來走一個

    public static void main(String[] args) throws UnknownHostException,SocketException{

        InetAddress inetAddress = InetAddress.getLocalHost();

        //獲取網卡,獲取地址

        byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();

        StringBuffer sb = new StringBuffer(“”);

        for (int i = 0; i  mac.length; i++){

            if (i != 0){

                sb.append(“-“);

            }

            //位元組轉換為整數

            int temp = mac[i]  0xff;

            String str = Integer.toHexString(temp);

            if (str.length() == 1){

                sb.append(“0” + str);

            }else{

                sb.append(str);

            }

        }

        System.out.println(“本機MAC地址:” + sb.toString().toUpperCase());

    }

輸出:

本機MAC地址:B8-88-E3-FA-03-39

java怎麼獲取系統mac地址

首先,創建工程,包,和一個類。

在此不加詳述,我們直接看代碼。

這裡,我把這個類命名為GetMacAddr

這裡,最最關鍵的就是這裡這個方法。

我們通過NetworkInterface這個類來操作。

也就是通過getLocalHost()方法先得到本機IP,

然後調用getHardwareAddress()方法得到一個byte數組的地址。

我們把六位地址傳到一個byte數組裏面,然後輸出來就是。

不多廢話,看代碼:

private void getMACAddr()

throws SocketException, UnknownHostException {

// 獲得IP

NetworkInterface netInterface =

NetworkInterface.getByInetAddress(InetAddress.getLocalHost());

// 獲得Mac地址的byte數組

byte[] macAddr = netInterface.getHardwareAddress();

System.out.print(“MAC Addr:\t”);

// 循環輸出

for (byte b : macAddr) {

// 這裡的toHexString()是自己寫的格式化輸出的方法,見下步。

System.out.print(toHexString(b) + ” “);

}

}

上一步驟中,為什麼會出現一個toHexString()方法呢?

因為可能10進制轉16進制時候可能會出現單字符,

所以,如果有出現單字符的情況,我們在其前面添加一個「0」做佔位符。

這也是為了視覺的直觀,也夾帶着個人的習慣。

private static String toHexString(int integer) {

// 將得來的int類型數字轉化為十六進制數

String str = Integer.toHexString((int) (integer 0xff));

// 如果遇到單字符,前置0佔位補滿兩格

if (str.length() == 1) {

str = “0” + str;

}

return str;

}

java如何獲取mac地址?

以windows舉例。\x0d\x0a運行命令” cmd ipconfig /all”就會出現以下結果\x0d\x0a \x0d\x0aPhysical Address. . . . . . . . . : 20-CF-30-9A-60-EE\x0d\x0a。\x0d\x0ajava就能過這樣的命令來獲取。以下是示例。\x0d\x0a\x0d\x0aimport java.io.BufferedReader;\x0d\x0aimport java.io.IOException;\x0d\x0aimport java.io.InputStreamReader;\x0d\x0a\x0d\x0apublic class TestMac\x0d\x0a{\x0d\x0a public static void main(String[] args) {\x0d\x0a System.out.println(“Operation System=” + getOsName());\x0d\x0a System.out.println(“Mac Address=” + getMACAddress());\x0d\x0a System.out.println(“通過ip獲取mac”+getMACAddress(“192.168.1.101”));\x0d\x0a }\x0d\x0a\x0d\x0a public static String getOsName() {\x0d\x0a String os = “”;\x0d\x0a os = System.getProperty(“os.name”);\x0d\x0a return os;\x0d\x0a }\x0d\x0a \x0d\x0a public static String getMACAddress() {\x0d\x0a String address = “”;\x0d\x0a String os = getOsName();\x0d\x0a if (os.startsWith(“Windows”)) {\x0d\x0a try {\x0d\x0a String command = “cmd.exe /c ipconfig /all”;\x0d\x0a Process p = Runtime.getRuntime().exec(command);\x0d\x0a BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));\x0d\x0a String line;\x0d\x0a while ((line = br.readLine()) != null) {\x0d\x0a if (line.indexOf(“Physical Address”) 0) {\x0d\x0a int index = line.indexOf(“:”);\x0d\x0a index += 2;\x0d\x0a address = line.substring(index);\x0d\x0a break;\x0d\x0a }\x0d\x0a }\x0d\x0a br.close();\x0d\x0a return address.trim();\x0d\x0a } catch (IOException e) {\x0d\x0a }\x0d\x0a } else if (os.startsWith(“Linux”)) {\x0d\x0a String command = “/bin/sh -c ifconfig -a”;\x0d\x0a Process p;\x0d\x0a try {\x0d\x0a p = Runtime.getRuntime().exec(command);\x0d\x0a BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));\x0d\x0a String line;\x0d\x0a while ((line = br.readLine()) != null) {\x0d\x0a if (line.indexOf(“HWaddr”) 0) {\x0d\x0a int index = line.indexOf(“HWaddr”) + “HWaddr”.length();\x0d\x0a address = line.substring(index);\x0d\x0a break;\x0d\x0a }\x0d\x0a }\x0d\x0a br.close();\x0d\x0a } catch (IOException e) {\x0d\x0a }\x0d\x0a }\x0d\x0a address = address.trim();\x0d\x0a return address;\x0d\x0a }\x0d\x0a\x0d\x0apublic static String getMACAddress(String ipAddress) { \x0d\x0aString str = “”, strMAC = “”, macAddress = “”; \x0d\x0atry { \x0d\x0aProcess pp = Runtime.getRuntime().exec(“nbtstat -a ” + ipAddress); \x0d\x0aInputStreamReader ir = new InputStreamReader(pp.getInputStream()); \x0d\x0aLineNumberReader input = new LineNumberReader(ir); \x0d\x0afor (int i = 1; i str = input.readLine(); \x0d\x0aif (str != null) { \x0d\x0aif (str.indexOf(“MAC Address”) 1) { \x0d\x0astrMAC = str.substring(str.indexOf(“MAC Address”) + 14, \x0d\x0astr.length()); \x0d\x0abreak; \x0d\x0a} \x0d\x0a} \x0d\x0a} \x0d\x0a} catch (IOException ex) { \x0d\x0areturn “Can’t Get MAC Address!”; \x0d\x0a} \x0d\x0a// \x0d\x0aif (strMAC.length() return “Error!”; \x0d\x0a} \x0d\x0a\x0d\x0amacAddress = strMAC.substring(0, 2) + “:” + strMAC.substring(3, 5) \x0d\x0a+ “:” + strMAC.substring(6, 8) + “:” + strMAC.substring(9, 11) \x0d\x0a+ “:” + strMAC.substring(12, 14) + “:” \x0d\x0a+ strMAC.substring(15, 17); \x0d\x0a// \x0d\x0areturn macAddress; \x0d\x0a} \x0d\x0a} \x0d\x0a\x0d\x0a劍天夢的回答原理和我這個一樣,都是通過Process 執行命令。 我直接補充到答案里了。不過\x0d\x0a我這邊運行那個命令出來的結果很多,那麼花的時間就長了。優點是能夠獲取別人的mac地址 。

java中怎麼獲取電腦的mac地址

import java.net.InetAddress;

import java.net.NetworkInterface;

import java.net.SocketException;

import java.net.UnknownHostException;

/*

 * 物理地址是48位,別和ipv6搞錯了

 */

public class LOCALMAC {

/**

 * @param args

 * @throws UnknownHostException 

 * @throws SocketException 

 */

public static void main(String[] args) throws UnknownHostException, SocketException {

// TODO Auto-generated method stub

//得到IP,輸出PC-201309011313/122.206.73.83

InetAddress ia = InetAddress.getLocalHost();

System.out.println(ia);

getLocalMac(ia);

}

private static void getLocalMac(InetAddress ia) throws SocketException {

// TODO Auto-generated method stub

//獲取網卡,獲取地址

byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();

System.out.println(“mac數組長度:”+mac.length);

StringBuffer sb = new StringBuffer(“”);

for(int i=0; imac.length; i++) {

if(i!=0) {

sb.append(“-“);

}

//位元組轉換為整數

int temp = mac[i]0xff;

String str = Integer.toHexString(temp);

System.out.println(“每8位:”+str);

if(str.length()==1) {

sb.append(“0″+str);

}else {

sb.append(str);

}

}

System.out.println(“本機MAC地址:”+sb.toString().toUpperCase());

}

}

java如何查詢本機ip地址和mac地址

   Java中可以使用程序來獲取本地ip地址和mac地址,使用InetAddress這個工具類,示例如下:

import java.net.*;

public class NetInfo {

 public static void main(String[] args) {

    new NetInfo().say();

    }

 public void say() {

   try {

   InetAddress i = InetAddress.getLocalHost();

   System.out.println(i);                  //計算機名稱和IP

   System.out.println(i.getHostName());    //名稱

   System.out.println(i.getHostAddress()); //只獲得IP

   }

   catch(Exception e){e.printStackTrace();}

 }

}

    也可以通過命令行窗口來查看本地ip和mac地址,輸入命令:ipconfig。

java 獲取無線 mac地址嗎

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.LineNumberReader;

public class GetMac {

/**

* java獲取客戶端網卡的MAC地址

*

* @param args

*/

public static void main(String[] args) {

GetMac get = new GetMac();

System.out.println(“1=”+get.getMAC());

System.out.println(“2=”+get.getMAC(“127.0.0.1”));

}

// 1.獲取客戶端ip地址( 這個必須從客戶端傳到後台):

// jsp頁面下,很簡單,request.getRemoteAddr() ;

// 因為系統的VIew層是用JSF來實現的,因此頁面上沒法直接獲得類似request,在bean里做了個強制轉換

// public String getMyIP() {

// try {

// FacesContext fc = FacesContext.getCurrentInstance();

// HttpServletRequest request = (HttpServletRequest) fc

// .getExternalContext().getRequest();

// return request.getRemoteAddr();

// } catch (Exception e) {

// e.printStackTrace();

// }

// return “”;

// }

// 2.獲取客戶端mac地址

// 調用window的命令,在後台Bean里實現 通過ip來獲取mac地址。方法如下:

// 運行速度【快】

public String getMAC() {

String mac = null;

try {

Process pro = Runtime.getRuntime().exec(“cmd.exe /c ipconfig/all”);

InputStream is = pro.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is));

String message = br.readLine();

int index = -1;

while (message != null) {

if ((index = message.indexOf(“Physical Address”)) 0) {

mac = message.substring(index + 36).trim();

break;

}

message = br.readLine();

}

System.out.println(mac);

br.close();

pro.destroy();

} catch (IOException e) {

System.out.println(“Can’t get mac address!”);

return null;

}

return mac;

}

// 運行速度【慢】

public String getMAC(String ip) {

String str = null;

String macAddress = null;

try {

Process p = Runtime.getRuntime().exec(“nbtstat -A ” + ip);

InputStreamReader ir = new InputStreamReader(p.getInputStream());

LineNumberReader input = new LineNumberReader(ir);

for (; true;) {

str = input.readLine();

if (str != null) {

if (str.indexOf(“MAC Address”) 1) {

macAddress = str

.substring(str.indexOf(“MAC Address”) + 14);

break;

}

}

}

} catch (IOException e) {

e.printStackTrace(System.out);

return null;

}

return macAddress;

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/152321.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-12 00:56
下一篇 2024-11-12 00:56

相關推薦

  • cmd看地址

    本文將從多個方面詳細闡述cmd看地址,包括如何查看本機IP地址、如何查看路由器IP、如何查看DNS服務器IP等等。 一、查看本機IP地址 要查看本機IP地址,首先需要打開cmd窗口…

    編程 2025-04-29
  • 尚硅谷官網地址用法介紹

    尚硅谷是國內一家領先的技術培訓機構,提供了眾多IT職業的培訓,包括Java、Python、大數據、前端、人工智能等方向。其官網地址為http://www.atguigu.com/。…

    編程 2025-04-29
  • Idea2022變更Git地址

    本文將從以下幾個方面對Idea2022變更Git地址進行詳細闡述: 一、GitHub上修改Git倉庫地址 1、登錄GitHub,找到需要修改的Git倉庫 2、在代碼頁面點擊右上角的…

    編程 2025-04-28
  • electron-egg打包後請求地址錯誤解決方法用法介紹

    本文將從多個方面對electron-egg打包後請求地址錯誤進行詳細闡述,並給出解決方法。 一、electron-egg打包後請求地址錯誤的表現 在使用 electron-egg …

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Python如何判斷IP地址合法性

    IP地址是網絡通信的基礎,因此判斷IP地址合法性是編程中常見的問題。Python作為一門強大的編程語言,提供了多種方法來判斷IP地址的合法性。 一、判斷IP地址格式是否正確 IP地…

    編程 2025-04-27
  • Python處理「該請求的地址無效」的解決方法

    本文將從以下幾個方面為大家詳細闡述在python中處理「該請求的地址無效」的解決方法。 一、檢查URL地址是否正確 當我們在使用Python發送網絡請求時,如果URL地址不正確,就…

    編程 2025-04-27
  • 未使用系統分配DNS地址的問題

    在網絡環境中,DNS服務器是維護網絡運行正常的重要組成部分。DNS服務器可以根據客戶機的請求將域名解析成相應的IP地址。然而,當用戶手動配置了自己的DNS服務器或者未使用系統分配的…

    編程 2025-04-24
  • Mac查看IP地址命令的用法

    一、查看本機IP地址 在Mac系統中,我們可以使用ifconfig命令來查看本機IP地址。具體方法如下: ifconfig 執行以上命令後,會得到如下結果: en0: flags=…

    編程 2025-04-24
  • 前端如何獲取IP地址

    一、利用JavaScript獲取IP地址 1、通過向第三方服務器發送請求獲取IP function getIP(callback) { const xhr = new XMLHtt…

    編程 2025-04-23

發表回復

登錄後才能評論