获取单个IP或IP段的MAC地址

代码:GetMac2.java。

执行class命令示例:java -classpath bin GetMac2 192.168.1.3

java -classpath bin GetMac2 192.168.1.3  6

代码:

import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

public class GetMac2 {
    
    public static String getMac(String ip) {
        List<String> command = new ArrayList<>();
        command.add("nbtstat");
        command.add("-A");        
        command.add(ip);
        
        try {
            ProcessBuilder builder = new ProcessBuilder(command);
            builder.redirectErrorStream(true);
            Process process = builder.start();
            LineNumberReader ir = new LineNumberReader(
                    new InputStreamReader(process.getInputStream(), Charset.forName("gbk"))); //UTF8
            String line;
            while ((line = ir.readLine()) != null) {
                if("".equals(line.trim()))continue;
//                System.out.println(line);
                if(line.contains("MAC 地址")) {
                    String arr[] = line.split("=");
                    return arr[arr.length-1].trim();
                }
            }
            
            if (process.isAlive()) {
                process.waitFor();
            }
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
        return "";
    }
    
    //命令1: GetMac2 192.168.1.3
    //命令2: GetMac2 192.168.1.3 5
    public static void main(String[] args) {
        String ip = args[0];
        if(args.length>1) {
            String endIp = args[1]; //结束ip(最末段)
            int end = Integer.parseInt(endIp);
            int index=ip.lastIndexOf(".");
            int start = Integer.parseInt(ip.substring(index+1));  //起始ip(最末段)
            String preStr = ip.substring(0, index+1); //ip段前缀
            for(int i=start;i<=end;i++) {
                String tmpIp = preStr + i;
                String mac = getMac(tmpIp);
                System.out.println(tmpIp + " " + mac);
            }
            return;
        }
        String mac = getMac(ip);
        System.out.println(ip + " " + mac);
    }
}

通过执行nbtstat命令获取MAC地址相关推荐

  1. 通过执行arp命令获取MAC地址

    获取单个IP或IP段的MAC地址 代码:GetMac.java. 执行class命令示例:java -classpath bin GetMac 192.168.1.3 或 java -classpat ...

  2. Android获取MAC地址

    (1) 调用android 的API: NetworkInterface. getHardwareAddress () 该API的level为9,只有android 2.3以上才有该接口 geMacF ...

  3. Windows/Linux获取Mac地址和CPU序列号实现

    UUID(Universally Unique Identifier)即通用唯一标识符,是指在一台机器上生成的数字,保证在全球范围的唯一性.可用的开源库如libuuid,可参考https://blog ...

  4. Java 跨平台获取 MAC 地址的两种方法

    前言 有时我们因为软件授权或者其它需要获取主机唯一标识而需要获取用户主机的MAC地址,而本文则将介绍如何通过Java来实现跨平台获取MAC地址的两种方法,同时具体的代码也已上传到GitHub. 如果不 ...

  5. java获取mac地址-屏蔽ip封mac地址

    首先要说的是:可以支持外网机器的mac地址获取.  以前弄了一个只能访问局域网. 有防火墙就访问不了, 但是这个不用担心了. 测试了百度的ip,已经可以获得mac地址 测试效果图: java通过ip获 ...

  6. 获取MAC地址的四种方法(转)

    https://www.cnblogs.com/zlshmily/p/10058560.html zlshmily 在实际的应用系统中,我们往往会需要在程序运行时获取当前机器的网卡的MAC地址,以便作 ...

  7. linux c 获取mac地址吗,Linux系统下用C语言获取MAC地址

    最近在做一个小程序,需要用到在linux系统里编写C程序从而获取MAC地址,从网上搜了一遍,想总结一下.如果你就只需要单个功能的程序,可以采用方法一,见代码1,一般最好能够封装起来,写成获取MAC地址 ...

  8. 获取mac地址方法之一 GetAdaptersInfo()

    GetAdaptersInfo -20151116 防止返回的mac出现null 20151116 From:http://blog.csdn.net/weiyumingwww/article/det ...

  9. java 根据ip获取mac地址,java服务器端根据ip获取客户端mac地址

    java服务器端根据ip获取客户端mac地址 2014/8/20 22:01:29  475900947  程序员俱乐部  我要评论(1) 摘要://判断系统publicStringcheckSys( ...

最新文章

  1. Java连接数据库 JDBC
  2. android平板开发板,利用开源开发板自制的平板电脑 | 雷锋网
  3. Spring MVC国际化
  4. 第一个Struts2程序
  5. 让你的spring-boot应用日志随心所欲--spring boot日志深入分析
  6. 探索停车黑科技,知位停车破局停车难题!
  7. java管道流文件的复制_JavaIO 总结笔记三 基本字节字符输入输出流和文件复制...
  8. BugkuCTF-WEB题cookie欺骗
  9. ES6快速入门——类与对象
  10. 205615872 能用来干么?
  11. 23andme、gsa、wegene各染色体位点统计
  12. div在html中的好处,详解DIV+CSS布局的好处和意义
  13. 私塾在线《深入浅出学 Hadoop- 初级 部分》
  14. 卓有成效的管理者(笔记)——有效的决策
  15. 【Java调用高德地图api】
  16. python获取文件大小
  17. 【LeetCode】灯泡开关Ⅰ~ Ⅳ(你还是把我关了吧)
  18. 竞价推广转化不好怎么办?
  19. android app签名详解
  20. 2020年浙江理工大学新生赛 B Cly的博弈

热门文章

  1. c语言指针,return以及函数返回值
  2. 如何使用Fraps录制视频
  3. Wolfram System Modeler:机枪后坐力可以把松鼠射多远——不可能飞行的真实物理学
  4. 51单片机实现交通信号灯
  5. 2017广东工业大学程序设计竞赛决赛总结
  6. String转String数组转int数组转List「Integer」
  7. 基于python 成绩转换工具
  8. 重温JavaScript(lesson4):作用域和闭包(2)
  9. 计算机组成原理蒋本第四版课后答案,元珊
  10. 不谈黑科技的段子才是有用的文章