国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java怎么獲取用戶客戶端mac地址

瀏覽:128日期:2023-11-17 15:38:13

問題描述

怎么在java中獲取到用戶客戶端MAC地址,試過很多方法獲取到的都是獲取服務器端MAC地址,并且也要考慮用戶有多個網卡的情況,如果有多個網卡就會有多個mac地址,需要獲取聯網的網卡的mac地址,系統沒有使用反向代理。java怎么獲取用戶客戶端mac地址

問題解答

回答1:

用java.net.NetworkInterface

Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();for (NetworkInterface netint : Collections.list(nets)) { System.out.printf('Name: %sn', netint.getName()); for (InetAddress inetAddress : Collections.list(inetAddresses)) {System.out.printf('InetAddress: %sn', inetAddress); } System.out.printf('Hardware address: %sn', Arrays.toString(netint.getHardwareAddress())); ...}回答2:

你的這段代碼在哪運行就拿到的是哪的mac地址如果你是web應用,除非你的客戶端和你的應用服務器在同一個局域網,否則你拿不到的如果你是c/s應用,那就在c端獲取,在報文里傳給s端具體原因,可以看下OSI7層網絡模型

回答3:

聲明本答案轉載,如需刪除,請告知。http://blog.csdn.net/yfkiss/a...

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.InetAddress;import java.net.NetworkInterface;/** * 與系統相關的一些常用工具方法. * * @author lvbogun * @version 1.0.0 */public class SystemTool { /** * 獲取當前操作系統名稱. return 操作系統名稱 例如:windows xp,linux 等. */ public static String getOSName() {return System.getProperty('os.name').toLowerCase(); } /** * 獲取unix網卡的mac地址. 非windows的系統默認調用本方法獲取. * 如果有特殊系統請繼續擴充新的取mac地址方法. * * @return mac地址 */ public static String getUnixMACAddress() {String mac = null;BufferedReader bufferedReader = null;Process process = null;try { // linux下的命令,一般取eth0作為本地主網卡 process = Runtime.getRuntime().exec('ifconfig eth0'); // 顯示信息中包含有mac地址信息 bufferedReader = new BufferedReader(new InputStreamReader( process.getInputStream())); String line = null; int index = -1; while ((line = bufferedReader.readLine()) != null) {// 尋找標示字符串[hwaddr]index = line.toLowerCase().indexOf('hwaddr');if (index >= 0) {// 找到了 // 取出mac地址并去除2邊空格 mac = line.substring(index + 'hwaddr'.length() + 1).trim(); break;} }} catch (IOException e) { e.printStackTrace();} finally { try {if (bufferedReader != null) { bufferedReader.close();} } catch (IOException e1) {e1.printStackTrace(); } bufferedReader = null; process = null;}return mac; } /** * 獲取widnows網卡的mac地址. * * @return mac地址 */ public static String getWindowsMACAddress() {String mac = null;BufferedReader bufferedReader = null;Process process = null;try { // windows下的命令,顯示信息中包含有mac地址信息 process = Runtime.getRuntime().exec('ipconfig /all'); bufferedReader = new BufferedReader(new InputStreamReader( process.getInputStream())); String line = null; int index = -1; while ((line = bufferedReader.readLine()) != null) {System.out.println(line);// 尋找標示字符串[physicalindex = line.toLowerCase().indexOf('physical address');if (index >= 0) {// 找到了 index = line.indexOf(':');// 尋找':'的位置 if (index >= 0) {System.out.println(mac);// 取出mac地址并去除2邊空格mac = line.substring(index + 1).trim(); } break;} }} catch (IOException e) { e.printStackTrace();} finally { try {if (bufferedReader != null) { bufferedReader.close();} } catch (IOException e1) {e1.printStackTrace(); } bufferedReader = null; process = null;}return mac; } /** * windows 7 專用 獲取MAC地址 * * @return * @throws Exception */ public static String getMACAddress() throws Exception {// 獲取本地IP對象InetAddress ia = InetAddress.getLocalHost();// 獲得網絡接口對象(即網卡),并得到mac地址,mac地址存在于一個byte數組中。byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();// 下面代碼是把mac地址拼裝成StringStringBuffer sb = new StringBuffer();for (int i = 0; i < mac.length; i++) { if (i != 0) {sb.append('-'); } // mac[i] & 0xFF 是為了把byte轉化為正整數 String s = Integer.toHexString(mac[i] & 0xFF); sb.append(s.length() == 1 ? 0 + s : s);}// 把字符串所有小寫字母改為大寫成為正規的mac地址并返回return sb.toString().toUpperCase(); } /** * 測試用的main方法. * * @param argc 運行參數. * @throws Exception */ public static void main(String[] argc) throws Exception {String os = getOSName();System.out.println(os);if (os.equals('windows 7')) { String mac = getMACAddress(); System.out.println(mac);} else if (os.startsWith('windows')) { // 本地是windows String mac = getWindowsMACAddress(); System.out.println(mac);} else { // 本地是非windows系統 一般就是unix String mac = getUnixMACAddress(); System.out.println(mac);} }}

標簽: java
相關文章:
主站蜘蛛池模板: 成人久久18免费游戏网站 | 99视频在线精品自拍 | 萌白酱在线喷水福利视频 | 久久久久久久久网站 | 在线免费黄网 | 久久精品国产三级不卡 | 2020精品极品国产色在线观看 | 欧美在线黄色 | 国产高清一区二区三区视频 | 国产一区二区日韩欧美在线 | 国产精品久久久久久久久久久久 | 免费一级a毛片免费观看欧美大片 | 精品一久久香蕉国产线看观 | 亚洲成人在线视频 | 手机免费毛片 | 特级毛片aaa免费版 特级毛片a级毛免费播放 | 久久成人国产精品免费 | 久久免费在线视频 | 精品国产一区二区三区2021 | 亚洲成a v人片在线看片 | 亚洲第一区香蕉_国产a | 撸久久| 国产精品九九久久一区hh | 精品欧美一区视频在线观看 | 国产一区中文字幕在线观看 | 亚洲一区二区三区成人 | 毛片网站视频 | 九九热久久免费视频 | 国产乱弄视频在线观看 | 欧美野外性xxxxfeexxxxx | 成人黄网大全在线观看 | 中文字幕va一区二区三区 | 国产成 人 综合 亚洲绿色 | 亚洲成人精品久久 | 美女视频免费黄色 | 粉嫩高中生的第一次在线观看 | 日韩精品另类天天更新影院 | 一级特黄欧美 | 美女黄网站 | 日韩一级a毛片欧美一级 | 九九黄色影院 |