javamac,JAVAMac地址解析IP

发布时间:2022-12-01

本文目录一览:

  1. java怎么获取系统mac地址
  2. java如何获取mac地址?
  3. 如何配置mac环境下的JAVA
  4. [如何为 Mac 安装 Java](#如何为 Mac 安装 Java)
  5. macbookpro适合java开发吗

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举例。 运行命令" cmd ipconfig /all"就会出现以下结果

Physical Address. . . . . . . . . : 20-CF-30-9A-60-EE

java就能过这样的命令来获取。以下是示例。

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地址 。

如何配置mac环境下的JAVA

MAC系统jdk安装路径与windows同默认目录:/System/Library/Frameworks/JavaVM.framework/Versions/ 目录Versions目录下同版本jdk

  1. 设置mac默认java版本呢 ? 先看mac java链接哪: 进入相应目录:cd /usr/bin 查看java链接哪:ls -l java
localhost:bin root# ls -l java
lrwxr-xr-x 1 root wheel 74 May 18 10:26 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

看java连接current版本底版本呢?其实mac current快捷方式以便设置默认java 链接连哪默认java哪mac保持java链接不变改变前java即面步骤:

  1. 打 Finder : 单击桌面步finder图标即可
  2. Application--Utilities--Java--Java Preferences
  3. 由第二步打开Java Preferences窗口,选择General tab面Java Application Runtime Settings区需要java版本拖顶端即可 顶端java前面(current)java改变默认java版本用/usr/bin重新设置java链接直接需要java拖下面行
  1. MAC java home设置 windows java home值取版本号目录即可,mac稍微不同,要版本号目录Home目录:
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
  1. MAC设置JAVA_HOME环境变量 环境变量要在/etc目录profile文件配置才永久配置
cd /etc
vi profile

输入内容:

JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
export JAVA_HOME

保存重启或者注销使环境变量配置起作用 javahome环境便令配置

如何为 Mac 安装 Java

mac安装java的方法和步骤:

  1. 下载mac版专用的jdk1.7。
  2. 下好之后,双击dmg打开,如图。直到安装完成,这里不会让你选择安装目录的。
  3. 改变jvm首选顺序,在Spotlight里搜索[Java Preferences](中文版应该是JAVA偏好设置),应该能看到已经有的几个虚拟机,把JAVA SE 7拖拽到最上面,就可以了(比如我拖拽的是64位版本的)。如图:
  4. 确认java使用的版本:开一个终端,输入java -version,确认jvm的版本号是jdk1.7.0。
  5. 设置jre,首先打开eclipse(如果你改了jvm的顺序,让1.7在最上面,又没在eclipse的配置里写死jvm的启动位置,那么应该就已经用jdk1.7启动了)。
  6. 打开首选项-Java-Installed JREs,看到右侧的JRE列表,如果已经使用是默认的jdk1.6的话,点Add,选择MacOS X VM,在路径的地方指向到jdk7的安装位置,就可以了。这里注意一定要选到Home目录下面。
  7. 如果你找不到jdk1.7的安装位置在哪里,到这个路径下看看是否存在:/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
  8. 正确的话,下面会识别出一堆jar包位置,然后给这一坨jre起个帅气的名字。
  9. 如果想启用jdk1.7的语法,必须要eclipse版本在3.8/4.2以上(目前我写这篇博客的时候,4.2已经达到了Milestone4),然后可以在workspace/project属性里把编译等级调整到1.7,就能享受jdk1.7的语言特性了(不过前提是,使用的jdk以及jre必须都是jdk1.7以上才行)。

macbookpro适合java开发吗

Macbookpro比较适合java开发,java开发推荐千锋教育,千锋教育现已拥有成熟独立的项目库,项目均1:1引进大厂项目,授课采用 CREA 项目研发模型,即 Cooperation、Research、Exercise、Alliance,以项目促进高质量教学。 Java 是几乎所有类型的网络应用程序的基础,也是开发和提供嵌入式和移动应用程序、游戏、基于 Web 的内容和企业软件的全球标准。Java 在全球各地有超过 900 万的开发人员,使您能够高效地开发、部署和使用精彩的应用程序和服务。从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java 无处不在. 想要了解更多Java开发的相关信息,推荐咨询千锋教育。千锋企合作部整合大量企业客户资源,紧抓当下企业需求,将技术和项目完美结合千锋课程体系,力求培养更多优质人才服务企业,不断提升学员竞争力,链接企业用人标准的培训课程及实战项目,让企业招聘用人的技术要求与千锋学员的技术充分对接。