mac地址好像在机器上是可以修改的,修改以后在网页中获取的是修改以后的吗?

解决方案 »

  1.   

    我没获取啊。我也想知道怎么获取。不说google可以通过页面获取吗。所以我也向知道他们怎么获取的
      

  2.   

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class TestMac
    {
          public static void main(String[] args) {
            System.out.println("Operation System=" + getOsName());
            System.out.println("Mac Address=" + getMACAddress());
            System.out.println("通过ip获取mac"+getMACAddress("192.168.1.101"));
         }    public static String getOsName() {
            String os = "";
            os = System.getProperty("os.name");
            return os;
        }
        
        public static String getMACAddress() {
            String address = "";
            String os = getOsName();
            if (os.startsWith("Windows")) {
                try {
                    String command = "cmd.exe /c ipconfig /all";
                    Process p = Runtime.getRuntime().exec(command);
                    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String line;
                    while ((line = br.readLine()) != null) {
                        if (line.indexOf("Physical Address") > 0) {
                            int index = line.indexOf(":");
                            index += 2;
                            address = line.substring(index);
                            break;
                        }
                    }
                    br.close();
                    return address.trim();
                } catch (IOException e) {
                }
            } else if (os.startsWith("Linux")) {
                String command = "/bin/sh -c ifconfig -a";
                Process p;
                try {
                    p = Runtime.getRuntime().exec(command);
                    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String line;
                    while ((line = br.readLine()) != null) {
                        if (line.indexOf("HWaddr") > 0) {
                            int index = line.indexOf("HWaddr") + "HWaddr".length();
                            address = line.substring(index);
                            break;
                        }
                    }
                    br.close();
                } catch (IOException e) {
                }
            }
            address = address.trim();
            return address;
        }        public static String getMACAddress(String ipAddress) { 
    String str = "", strMAC = "", macAddress = ""; 
    try { 
    Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress); 
    InputStreamReader ir = new InputStreamReader(pp.getInputStream()); 
    LineNumberReader input = new LineNumberReader(ir); 
    for (int i = 1; i < 100; i++) { 
    str = input.readLine(); 
    if (str != null) { 
    if (str.indexOf("MAC Address") > 1) { 
    strMAC = str.substring(str.indexOf("MAC Address") + 14, 
    str.length()); 
    break; 



    } catch (IOException ex) { 
    return "Can't Get MAC Address!"; 

    // 
    if (strMAC.length() < 17) { 
    return "Error!"; 


    macAddress = strMAC.substring(0, 2) + ":" + strMAC.substring(3, 5) 
    + ":" + strMAC.substring(6, 8) + ":" + strMAC.substring(9, 11) 
    + ":" + strMAC.substring(12, 14) + ":" 
    + strMAC.substring(15, 17); 
    // 
    return macAddress; 


    剑天梦的回答原理和我这个一样,都是通过Process 执行命令。 我直接补充到答案里了。不过
    我这边运行那个命令出来的结果很多,那么花的时间就长了。优点是能够获取别人的mac地址 。赞同
    1| 评论  
    向TA求助 回答者: 此间的记者 | 二级采纳率:50% 擅长领域: 程序设计 JAVA相关 数据库 参加的活动: 暂时没有参加的活动 
    提问者对于答案的评价:谢谢              
    相关内容 
    2009-1-21 JAVA中如何获取指定IP的MAC地址 8 
    2009-3-9 求助:JAVA中如何获取客户端网卡MAC地址和IP地址? 3 
    2008-2-28 怎样通过java script来获取主机的MAC地址? 
    2008-5-14 一个获取MAC地址的JAVA程序,不知道错误再哪?谢谢! 2 
    2007-9-12 JAVA查询MAC地址问题 1 
    更多关于java获取mac地址的问题>> 
    其他回答 共3条 
    检举 | 2011-7-15 17:12 剑天梦 | 三级  
    先获取ip通过request.getRemoteAddr();
    通过ip获取mac
    public String getMACAddress(String ipAddress) { 
    String str = "", strMAC = "", macAddress = ""; 
    try { 
    Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress); 
    InputStreamReader ir = new InputStreamReader(pp.getInputStream()); 
    LineNumberReader input = new LineNumberReader(ir); 
    for (int i = 1; i < 100; i++) { 
    str = input.readLine(); 
    if (str != null) { 
    if (str.indexOf("MAC Address") > 1) { 
    strMAC = str.substring(str.indexOf("MAC Address") + 14, 
    str.length()); 
    break; 



    } catch (IOException ex) { 
    return "Can't Get MAC Address!"; 

    // 
    if (strMAC.length() < 17) { 
    return "Error!"; 


    macAddress = strMAC.substring(0, 2) + ":" + strMAC.substring(3, 5) 
    + ":" + strMAC.substring(6, 8) + ":" + strMAC.substring(9, 11) 
    + ":" + strMAC.substring(12, 14) + ":" 
    + strMAC.substring(15, 17); 
    // 
    return macAddress; 
    } 修改后获取的肯定是修改后的啊,要不别人修改mac地址做什么,我用卡巴斯基 试用期到了,修改mac地址就又能用一个月了
      

  3.   

    这个是通过DOS命令来获取的啊
    这个可以获取本机IP
    public class MacAddress {

    public static String hexByte(byte b) {
    String s = "000000" + Integer.toHexString(b);
    return s.substring(s.length() - 2);
    } public static String getMAC() {
    Enumeration<NetworkInterface> el;
    String mac_s = "";
    try {
    el = NetworkInterface.getNetworkInterfaces();
    while (el.hasMoreElements()) {
    NetworkInterface ni = el.nextElement();
    byte[] mac = ni.getHardwareAddress();
    if (mac == null)
    continue;
    if (mac != null && mac.length>=6){
                        mac_s = hexByte(mac[0]) + "-" + hexByte(mac[1]) + "-"
                        + hexByte(mac[2]) + "-" + hexByte(mac[3]) + "-"
                        + hexByte(mac[4]) + "-" + hexByte(mac[5]);
                        System.out.println(mac_s + "MAC地址");
                    } }
    } catch (SocketException e1) {
    e1.printStackTrace();
    }
    return mac_s;
    }

    public static void main(String[] args) {
    MacAddress m = new MacAddress();
    m.getMAC();

    }
    }