java通过IP地址获取mac地址

package org.util.demo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * 通过arp命令获取MAC地址:
 * 
 *通过IP获取MAC地址也可以用nbtstat命令,但是nbtstat获取不到ipad的mac地址,所以现在改用arp命令获取mac地址
 *但通过arp命令获取地址只能是与服务器有过通信的才能查看,所以在代码中有一次ping一次对方IP的方法,
 *	1、确保IP通信正常;
 *	2、建立与对面IPAD的通信
 *详细见代码,如有更好的建议忘各位指正;
 * 
 * @author 我叫王大鑫 lxdyy@outlook.com
 *
 */
public class Testjar {

//	public static final String IP = "172.17.36.45";

	public static void main(String[] args) throws IOException {
		BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
		System.out.println("输入IP:");
		String IP = strin.readLine();
		System.out.println(GetMacAddress(IP));
	}


	/**
	 * 判断IP是否非法
	 * 判断IP是否为本地IP 例如:127.0.0.1
	 * 判断IP是否可正常通信
	 * 获取MAC地址
	 * @param ip
	 * @return
	 */
	private static String GetMacAddress(String ip) {
		if(!booleanIP(ip)){
			return "IP非法";
		}
		if(ip.equalsIgnoreCase("127.0.0.1")){
			return "不能输入本地地址";
		}
		System.out.println("输入的IP地址为"+ip);
		String str = "";
		String macAddress = "";
		try {
			if (!Ping(ip)) {
				return "无法访问";
			}
			System.out.println("IP可以正常访问");
			Process p = Runtime.getRuntime().exec("arp -a ");
			InputStreamReader ir = new InputStreamReader(p.getInputStream());
			LineNumberReader input = new LineNumberReader(ir);
			for (int i = 1; i < 100; i++) {
				str = input.readLine();
				if (str != null) {
					if (str.indexOf(ip) > 1) {
						macAddress = str.substring(str.indexOf(ip) + 22,str.length() - 11);
						break;
					}
				}
			}
		} catch (IOException e) {
			e.printStackTrace(System.out);
		}
		return macAddress;
	}

	/**
	 * 验证IP是否非法
	 * @param ip
	 * @return
	 */
	private static boolean booleanIP(String ip) {
		String p = "(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})";
		Pattern pattern = Pattern.compile(p);
		Matcher matcher = pattern.matcher(ip);
		return matcher.matches();
	}

	/**
	 * 判断ip通信是否通畅
	 * @param ip
	 * @return
	 * @throws IOException
	 */
	private static boolean Ping(String ip) throws IOException {
		System.out.println("进行IP在线监测");
		boolean f = false;
		Process process = Runtime.getRuntime().exec("ping " + ip);
		InputStreamReader r = new InputStreamReader(process.getInputStream());
		LineNumberReader returnData = new LineNumberReader(r);
		String line = "";
		while ((line = returnData.readLine()) != null) {
			if(line.indexOf(String.valueOf("TTL")) == -1){
			}else {
				f = true;
				break;
			}
		}
		return f;
	}
	
}


转载于:https://my.oschina.net/wangdaxin/blog/298887

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值