当前位置: 首页 > news >正文

java获取局域网mac_最靠谱的JAVA局域网内通过IP地址获取MAC地址(本人亲测)

局域网内通过IP地址获取MAC地址(本人亲测)window环境下,其他环境未测试

1.[代码][Java]代码

package com.example;

import java.io.InputStream;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Cmd {

/**

* 执行单条指令

* @param cmd 命令

* @return 执行结果

* @throws Exception

*/

public static String command(String cmd) throws Exception{

Process process = Runtime.getRuntime().exec(cmd);

process.waitFor();

InputStream in = process.getInputStream();

StringBuilder result = new StringBuilder();

byte[] data = new byte[256];

while(in.read(data) != -1){

String encoding = System.getProperty("sun.jnu.encoding");

result.append(new String(data,encoding));

}

return result.toString();

}

/**

* 获取mac地址

* @param ip

* @return

* @throws Exception

*/

public static String getMacAddress(String ip) throws Exception{

String result = command("ping "+ip+" -n 2");

if(result.contains("TTL")){

result = command("arp -a "+ip);

}

String regExp = "([0-9A-Fa-f]{2})([-:][0-9A-Fa-f]{2}){5}";

Pattern pattern = Pattern.compile(regExp);

Matcher matcher = pattern.matcher(result);

StringBuilder mac = new StringBuilder();

while (matcher.find()) {

String temp = matcher.group();

mac.append(temp);

}

return mac.toString();

}

public static void main(String[] args) throws Exception {

System.out.println(System.currentTimeMillis());

System.out.println(getMacAddress("192.168.1.113"));

System.out.println(System.currentTimeMillis());

//System.out.println(command("arp -a 192.168.1.103"));

//System.out.println(System.getProperties());

}

}

相关文章:

  • java 验证客户端证书_用于身份验证的Apache客户端证书
  • 【BZOJ1046】上升序列(动态规划,贪心)
  • java离线api_Oracle官网下载Java的api离线文档
  • Bzoj5296: [Cqoi2018]破解D-H协议
  • java归并_java归并排序
  • java string的实现_string类的实现
  • ant design 中,使用dva/fetch 设置导致无法从后台导出excel的问题
  • python引用计数实例_Python中的引用计数法
  • LoadRunner Vuser接口测试脚本 Post举例
  • java 类的继承_Java:类与继承
  • 浅谈对象的复制拷贝
  • java官方网站下载_java下载 7.0 官方版
  • asp.net的% %特定用法
  • java代码shiro注解_java相关:Shiro集成Spring之注解示例详解
  • Oracle Shared Pool机制之——Latches, Locks, Pins and Mutexes
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【EOS】Cleos基础
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Angular 4.x 动态创建组件
  • AWS实战 - 利用IAM对S3做访问控制
  • k8s 面向应用开发者的基础命令
  • k8s如何管理Pod
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • PHP面试之三:MySQL数据库
  • VUE es6技巧写法(持续更新中~~~)
  • Vue小说阅读器(仿追书神器)
  • 测试如何在敏捷团队中工作?
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 复习Javascript专题(四):js中的深浅拷贝
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 微服务入门【系列视频课程】
  • 系统认识JavaScript正则表达式
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #if #elif #endif
  • (07)Hive——窗口函数详解
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (算法设计与分析)第一章算法概述-习题
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)Google的Objective-C编码规范
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .bat文件调用java类的main方法
  • .describe() python_Python-Win32com-Excel
  • .NET Core 版本不支持的问题
  • .net 程序发生了一个不可捕获的异常
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .net专家(张羿专栏)
  • @Service注解让spring找到你的Service bean
  • [ solr入门 ] - 利用solrJ进行检索
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [16/N]论得趣