国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Bagaimana untuk mendapatkan alamat mac pelanggan pengguna dalam java
PHPz
PHPz 2017-05-27 17:41:02
0
3
1354

Bagaimana untuk mendapatkan alamat MAC pelanggan pengguna dalam java Saya telah mencuba banyak kaedah untuk mendapatkan alamat MAC pelayan, dan kita juga mesti mempertimbangkan situasi di mana pengguna mempunyai berbilang kad rangkaian, akan ada berbilang alamat mac, anda perlu mendapatkan alamat mac kad rangkaian yang disambungkan ke rangkaian Sistem tidak menggunakan proksi terbalik.

PHPz
PHPz

學(xué)習(xí)是最好的投資!

membalas semua(3)
巴扎黑

Gunakan java.net.NetworkInterface

Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
for (NetworkInterface netint : Collections.list(nets)) {
    System.out.printf("Name: %s\n", netint.getName());
    for (InetAddress inetAddress : Collections.list(inetAddresses)) {
        System.out.printf("InetAddress: %s\n", inetAddress);
    }
    System.out.printf("Hardware address: %s\n", Arrays.toString(netint.getHardwareAddress()));
    ...
}
給我你的懷抱

Anda akan mendapat alamat mac di mana sahaja anda menjalankan kod ini
Jika anda adalah aplikasi web, melainkan pelanggan anda dan pelayan aplikasi anda berada dalam LAN yang sama, anda tidak akan dapat mendapatkannya
Jika anda adalah aplikasi c/s, kemudian dapatkannya di sebelah c dan hantar ke sebelah s dalam mesej
Atas sebab tertentu, anda boleh melihat model rangkaian lapisan OSI7

僅有的幸福

Nyatakan bahawa jawapan ini diterbitkan semula Jika anda perlu memadamkannya, sila maklumkan kepada kami. 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;

/**
 * 與系統(tǒng)相關(guān)的一些常用工具方法.
 * 
 * @author lvbogun
 * @version 1.0.0
 */
public class SystemTool {

    /**
     * 獲取當(dāng)前操作系統(tǒng)名稱. return 操作系統(tǒng)名稱 例如:windows xp,linux 等.
     */
    public static String getOSName() {
        return System.getProperty("os.name").toLowerCase();
    }

    /**
     * 獲取unix網(wǎng)卡的mac地址. 非windows的系統(tǒng)默認(rèn)調(diào)用本方法獲取.
     * 如果有特殊系統(tǒng)請(qǐng)繼續(xù)擴(kuò)充新的取mac地址方法.
     * 
     * @return mac地址
     */
    public static String getUnixMACAddress() {
        String mac = null;
        BufferedReader bufferedReader = null;
        Process process = null;
        try {
            // linux下的命令,一般取eth0作為本地主網(wǎng)卡
            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) {
                // 尋找標(biāo)示字符串[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網(wǎng)卡的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);
                // 尋找標(biāo)示字符串[physical
                index = 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對(duì)象
        InetAddress ia = InetAddress.getLocalHost();
        // 獲得網(wǎng)絡(luò)接口對(duì)象(即網(wǎng)卡),并得到mac地址,mac地址存在于一個(gè)byte數(shù)組中。
        byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();

        // 下面代碼是把mac地址拼裝成String
        StringBuffer sb = new StringBuffer();

        for (int i = 0; i < mac.length; i++) {
            if (i != 0) {
                sb.append("-");
            }
            // mac[i] & 0xFF 是為了把byte轉(zhuǎn)化為正整數(shù)
            String s = Integer.toHexString(mac[i] & 0xFF);
            sb.append(s.length() == 1 ? 0 + s : s);
        }

        // 把字符串所有小寫字母改為大寫成為正規(guī)的mac地址并返回
        return sb.toString().toUpperCase();
    }

    /**
     * 測(cè)試用的main方法.
     * 
     * @param argc 運(yùn)行參數(shù).
     * @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系統(tǒng) 一般就是unix
            String mac = getUnixMACAddress();
            System.out.println(mac);
        }
    }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan