JAVA之获取网卡物理地址

news/2024/7/4 1:31:56 标签: string, null, windows, linux, class, os
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

    在JAVA中有时候会需要定位到某台电脑,而通过IP定位显然是不行的,有一种解决方案是通过定位到电脑的物理地址来定位电脑,这是本文要介绍的内容。
    1. PhysicalAddressUtil

class="has">class="language-java">package com.jetsum.web.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import test.Test;

public class PhysicalAddress {
	public static String getMACAddress() {
		String address = "";
		String os = System.getProperty("os.name");
		if (os != class="tags" href="/tags/NULL.html" title=null>null) {
			if (os.startsWith("Windows")) {
				try {
					ProcessBuilder pb = new ProcessBuilder("ipconfig", "/all");
					Process p = pb.start();
					BufferedReader br = new BufferedReader(
							new InputStreamReader(p.getInputStream()));
					String line;
					while ((line = br.readLine()) != class="tags" href="/tags/NULL.html" title=null>null) {
						if (line.indexOf("Physical Address") != -1) {
							int index = line.indexOf(":");
							address = line.subclass="tags" href="/tags/STRING.html" title=string>string(index + 1);
							break;
						}
					}
					br.close();
					return address.trim();
				} catch (IOException e) {
				}
			} else if (os.startsWith("Linux")) {
				try {
					ProcessBuilder pb = new ProcessBuilder("ifconfig");
					Process p = pb.start();
					BufferedReader br = new BufferedReader(
							new InputStreamReader(p.getInputStream()));
					String line;
					while ((line = br.readLine()) != class="tags" href="/tags/NULL.html" title=null>null) {
						int index = line.indexOf("硬件地址");
						if (index != -1) {
							address = line.subclass="tags" href="/tags/STRING.html" title=string>string(index + 4);
							break;
						}
					}
					br.close();
					return address.trim();
				} catch (IOException ex) {
					Logger.getLogger(Test.class.getName()).log(Level.SEVERE,
							class="tags" href="/tags/NULL.html" title=null>null, ex);
				}
			}
		}
		return address;
	}
}


        2.使用

class="has">class="language-java">String address = PhysicalAddressUtil.getMACAddress() ;


http://www.niftyadmin.cn/n/1262932.html

相关文章

华为鸿蒙系统手机魅族,又一老牌国产手机巨头官宣!力挺华为鸿蒙OS系统:全球第三稳了...

【3月24日讯】相信大家都知道,自从华为发布的鸿蒙OS 2.0内测版系统开始搭载于部分华为旗舰机型上,就有越来越多花粉们期待,自己手中的华为手机能够早日用上鸿蒙OS系统,毕竟华为鸿蒙OS系统(Harmony)主打分布式操作布局,…

WPF初探——利用Winform库中的NotifyIcon实现托盘小程序

前天晚上睡觉前萌生实现一个小软件的想法,界面准备采用类似Demon tools的NotifyIcon界面。今天游玩归来准备动手写的时候,在工具栏里面却发现没找到托盘控件,囧。既然没有,就自己实现下吧,参考了MSDN上给出的代码样板&…

Oracle面试题集锦-技术篇

本文是Oracle技术人员求职面试题集锦,答案仅供参考…… 1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用…

android 2d 漫画界面,宅男舔屏必备!动漫人物Live2d壁纸App

宅男最喜欢什么东西?当然就是各种二次元萌妹子啦。看到手机中的萌图,宅男们甚至止不住舔屏(……)。今天,小编就来为各位宅男们推荐一款质量相当好的动漫人物Live2d动态壁纸App,尽情prpr吧!软件名称:Live2d壁…

android图片高性能绘制,Android自定义ImageView实现圆形图片

自定义ImageView实现圆形图片,主要是在onDraw()方法中实现绘制圆形图片,在onMeasure()中测量圆形的半径并设置View的宽高。效果如下图代码如下public class CircleImageView extends ImageView {//画笔private Paint mPaint;//圆形图片的半径private int…

checkstyle插件

用MyEclpse更新时的地址:http://eclipse-cs.sourceforge.net/update/

android 切换摄像头加动画,android前后摄像头切换

android前后摄像头切换demo,startview后的页面上有切换、拍照两个按钮,拍照后照片未保存,需要保存的请看下方注释,实现了拍照、聚焦功能,以下是CameraPreview.java源码:package com.myselftest;import java…

SQL Server常用工具——SQL Server Powershell Extensions

使用PowerShell的优点与使用标准的T-SQL和SSIS进行自动化的方法相比,PowerShell脚本为DBA们带来了更多优点。这些优点包括: 1、对多服务器进行自动化处理更为简单,我们可以在多台SQL Server实例上执行任何特定任务。 2、更容易访问Window…