1. 先使用ping -n  2 10.0.0.1 命令,如果返回的结果中含有TTL字符,证明ping 10.0.0.1是能ping通的,即可达的。如果在Linux机器上请使用 ping -c 2 10.0.0.1命令
  2. 再使用arp -a 10.0.0.1命令,在windows的cmd中使用该命令的返回结果如下图
  3. 得到 10.0.0.1的Mac地址为34-96-72-a0-ee-b5
  4. 既然通过这两个命令能实现从IP地址到MAC地址的转换,那么在Java后台无非就是执行这两条命令,对结果进行分析,对字符串进行处理得到MAC地址
  5. package com.security.common.utils;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern; public class IP2MacUtils {
    public static String commond(String cmd) throws IOException{
    Process process = Runtime.getRuntime().exec(cmd);
    InputStream inputStream = process.getInputStream();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
    StringBuilder stringBuilder = new StringBuilder();
    String line = null;
    while((line = bufferedReader.readLine()) != null ){
    //String encode = System.getProperty("sun.jun.encoding");
    stringBuilder.append(line);
    }
    return stringBuilder.toString();
    } public static String getMacByIP(String IPAddress) throws IOException{
    String result = commond("ping -n 3 " + IPAddress);
    if ( result.contains("TTL")) {
    result = commond("arp -a " + IPAddress);
    }
    System.out.println(result);
    String regExp = "([0-9A-Fa-f]{2})([-:][0-9A-Fa-f]{2}){5}";
    Pattern pattern = Pattern.compile(regExp);
    Matcher matcher = pattern.matcher(result);
    StringBuilder stringBuilder = new StringBuilder();
    while( matcher.find() ){
    String temp = matcher.group();
    System.out.println(temp);
    stringBuilder.append(temp);
    }
    return stringBuilder.toString();
    } public static void main(String[] args) throws IOException{
    System.out.println("MAC : " + getMacByIP("10.0.0.1"));
    }
    }
  6. 最终程序的运行结果为
  7. 得到的结果一如命令行得到的结果,从而实现了Java中由IP地址得到MAC地址。

  8. Java.lang.Process , Pattern , Matcher ,正则表达式的简单使用

Java根据IP地址获取MAC地址的更多相关文章

  1. Java根据ip地址获取Mac地址,Java获取Mac地址

    Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...

  2. Windows下Java如何调用本地获取mac地址

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  3. java获取服务器IP地址及MAC地址的方法

    这篇文章主要介绍了java编程实现获取机器IP地址及MAC地址的方法,实例分析了Java分别针对单网卡及多网卡的情况下获取服务器IP地址与MAC地址的相关技巧,需要的朋友可以参考下   本文实例讲述了 ...

  4. JAVA获取客户端IP地址和MAC地址

    1.获取客户端IP地址 public String getIp(HttpServletRequest request) throws Exception { String ip = request.g ...

  5. java获取本机IP地址和MAC地址的方法

    // 获取ip地址 public static String getIpAddress() { try { Enumeration<NetworkInterface> allNetInte ...

  6. Java -- 获取MAC地址

    啦啦啦 package com.xindatai.common.util; import java.io.InputStream; import java.util.regex.Matcher; im ...

  7. android获取Mac地址和IP地址

    获取Mac地址实际项目中测试了如下几种方法:(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac地址,这种方法也是网络上使用的最多的方法) //根据Wifi信 ...

  8. 获取设备信息——获取客户端ip地址和mac地址

    1.获取本地IP(有可能是 内网IP,192.168.xxx.xxx) /** * 获取本地IP * * @return */ public static String getLocalIpAddre ...

  9. 使用Python获取计算机名,ip地址,mac地址等等

    获取计算机名 # 获取计算机名,常用的方法有三种 import os import socket # method one name = socket.gethostname() print(name ...

随机推荐

  1. myeclipse 上安装 Maven3<转>

    环境准备: JDK 1.6 Maven 3.0.4 myeclipse 8.6.1 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Maven是 Apache 下的一个项目,目前最新版 ...

  2. Am335x 应用层之SPI操作

    SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合.图1中表现了这四种时序, 时序与CPOL.CPHL的关系也可以从图中看出. 图1 CPOL是用来决定SCK时钟信号空闲时的电平 ...

  3. API - 使用数据仓库 - 基础篇

    数据仓库是集成在Spider Studio中的一个重要功能, 利用它可以非常方便的保存采集到的数据, 然后导出或者在其他脚本中再利用. 数据仓库的全部功能都集成在DataManager这个静态类里面, ...

  4. ansible之并行运行

    ansible之并发运行 转载 2016年07月14日 12:33:39 标签: 并发 / ansible 4474 ansible默认只会创建5个进程,所以一次任务只能同时控制5台机器执行.那如果你 ...

  5. HTML5关于上传API的一些使用(上)

    HTML5提供了很多有用的API,其中就包括上传的API,XMLHttpRequest2.0,在HTML5时代之前,需要进行二进制的上传一般都会才用flash的方案,但是当XMLHttpRequest ...

  6. Java的图形界面依然是跨平台的

    Awt:抽象窗口工具箱,它由三部分组成: ①组件:界面元素: ②容器:装载组件的容器(例如窗体): ③布局管理器:负责决定容器中组件的摆放位置. 图形界面的应用分四步: ① 选择一个容器: ⑴wind ...

  7. before伪类的超有用应用技巧——水平菜单竖线分隔符

    方法一.li前面加before伪类 <!doctype html> <html dir="ltr" lang="zh-CN"> < ...

  8. 怎么取消环境变量设置 shell

    Linux字符模式下设置/删除环境变量方法: bash下 设置:export 变量名=变量值 删除:unset 变量名 转自:http://zhidao.baidu.com/link?url=sY3u ...

  9. glibc升级小记

    2015年元月最后几天,glibc幽灵漏洞来袭,引用 中华财经网的报道 稍做介绍: Linux glibc函数库日前曝出名为GHOST(幽灵)的高危漏洞,漏洞编号是CVE-2015-0235.攻击者可 ...

  10. linux默认的目录介绍

    http://www.cnblogs.com/shishm/archive/2011/11/03/2234954.html