當前位置:首頁 » 網頁前端 » javaweb獲取mac
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javaweb獲取mac

發布時間: 2022-12-31 14:19:55

① Java web 怎麼得到客戶端的 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; i<mac.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());

}

}

② javaweb項目如何只能在特定的機器上部署啟動

這個需要用到一些jni技術才行的。
建議採用jna調用本地庫來獲取MAC地址,然後比對。
核心代碼最好混淆一下,或者啟動的web服務必須定時訪問你指定的licence伺服器進行驗證。

③ java web 獲取當前登陸用戶的MAC地址,但是報異常了!!!

java代碼是運行在伺服器端的,你要獲得客戶端的mac地址只能用js實現

④ Java web 怎麼得到客戶端的Mac地址

package com.alpha.test;

import java.io.BufferedReader;
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;
}
}

⑤ java web 項目中怎麼獲取客戶端MAC/硬碟序列號/cpu序列號呢小弟虛心求高手

這個是獲取不到的,因為客戶端與你伺服器一般都是經過復雜的網路連接來的,通常拿到的MAC一般是線路上某台路由器的MAC,沒有多大意義。至於硬碟序列號和CPU序列號,這根本無法從一個soket連接中取到。就好像,我無法知道比如在QQ聊天中對面是人還是狗一樣。

⑥ Java web 怎麼得到客戶端的 Mac 地址

參考代碼如下:
String[] cmd;
if (OS.contains("win")) {
// 對於windows
macpt = Pattern
.compile("[0-9a-f]+-[0-9a-f]+-[0-9a-f]+-[0-9a-f]+-[0-9a-f]+-[0-9a-f]+");
String[] a = { "arp", "-a", ip };
cmd = a;
} else {
// 對於mac 和 linux
macpt = Pattern
.compile("[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+");
String[] a = { "arp", ip };
cmd = a;
}

try {
// 執行命令行代碼
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
// 讀取buffer
BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = reader.readLine();
while (line != null) {
Matcher m = macpt.matcher(line);
if (m.find()) {
System.out.println("Found");
System.out.println("MAC: " + m.group(0));
return m.group(0);
}

line = reader.readLine();
}

} catch (IOException e1) {
e1.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
return "";
}

⑦ mac如何允許java運行

一、在 Mac 上安裝 Java

1、下載jre-8u40-macosx-x64.dmg文件。

2、在下載文件前,需查看並同意許可證協議的條款。

3、雙擊 .dmg 文件以啟動它

5、Oracle 已與提供各種產品的多家公司建立合作關系。在安裝 Java 時,安裝程序可能會提供安裝這些程序的選項。在確保選中了所需程序之後,單擊「下一步」按鈕以繼續安裝。

6、安裝完成後,將顯示確認屏幕。單擊Close(關閉)完成安裝過程。


二、有關已禁用 Java 和還原提示的通知

如果 Web 瀏覽器中已禁用了 Java 內容,則安裝程序會通知您,並且提供用於啟用 Java 的說明。如果您以前選擇了隱藏一些小應用程序和 Java Web Start 應用程序的安全提示,則安裝程序將提供還原提示的選項。在提示您重新啟動 Internet 瀏覽器時,如果您選擇不重新啟動,則安裝程序可能會要求您重新啟動計算機。