java怎么得到本地mac_Windows下Java如何调用本地获取mac地址

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.LineNumberReader;

public class TestMac {

public static void main(String[] args) {

System.out.println("Operation System=" + getOsName());

System.out.println("Mac Address=" + getMACAddress());

System.out.println("通过ip获取mac" + getMACAddress("*.*.*.*"));

}

public static String getOsName() {

String os = "";

os = System.getProperty("os.name");

return os;

}

public static String getMACAddress() {

String address = "";

String os = getOsName();

if (os.startsWith("Windows")) {

try {

String command = "cmd.exe /c ipconfig/all";

Process p = Runtime.getRuntime().exec(command);

BufferedReader br = new BufferedReader(new InputStreamReader(

p.getInputStream()));

String line;

while ((line = br.readLine()) != null) {

if (line.indexOf("Physical Address") > 0) {

int index = line.indexOf(":");

index += 2;

address = line.substring(index);

break;

}

}

br.close();

return address.trim();

} catch (IOException e) {

}

} else if (os.startsWith("Linux")) {

String command = "/bin/sh -c ifconfig -a";

Process p;

try {

p = Runtime.getRuntime().exec(command);

BufferedReader br = new BufferedReader(new InputStreamReader(

p.getInputStream()));

String line;

while ((line = br.readLine()) != null) {

if (line.indexOf("HWaddr") > 0) {

int index = line.indexOf("HWaddr") + "HWaddr".length();

address = line.substring(index);

break;

}

}

br.close();

} catch (IOException e) {

}

}

address = address.trim();

return address;

}

public static String getMACAddress(String ipAddress) {

String str = "";

String strMAC = "";

String macAddress = "";

try {

Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress);

InputStreamReader ir = new InputStreamReader(pp.getInputStream());

LineNumberReader input = new LineNumberReader(ir);

for (int i = 1; i < 100; i++) {

str = input.readLine();

if (str != null) {

if (str.indexOf("MAC Address") > 1) {

strMAC = str.substring(str.indexOf("MAC Address") + 14,

str.length());

break;

}

}

}

} catch (IOException ex) {

return "Can't Get MAC Address!";

}

//

if (strMAC.length() < 17) {

return "Error!";

}

macAddress = strMAC.substring(0, 2) + ":" + strMAC.substring(3, 5) +

":" + strMAC.substring(6, 8) + ":" + strMAC.substring(9, 11) + ":" +

strMAC.substring(12, 14) + ":" + strMAC.substring(15, 17);

//

return macAddress;

}

}

Windows下Java调用BAT批处理不弹出cmd窗口

常规Windows下Java调用BAT方式肯定会弹出cmd窗口 Runtime.getRuntime().exec("cmd.exe /C start D:\\test.bat") ...

java获取本地计算机MAC地址

java获取本地计算机MAC地址代码如下: public class SocketMac { //将读取的计算机MAC地址字节转化为字符串 public static String transByte ...

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

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

本地windows下搭建git的本地服务器

本地windows下搭建git的本地服务器 准备工作: 本地安装java环境,配置环境变量(略) 下载gitblit文件,百度一大堆 开始第一步: 减压gitblit压缩包到某个目录下,比如我在:H: ...

Java -- 获取MAC地址

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

Windows 下java环境变量的配置(Windows7 ,8,8&period;1,10)

Windows 下java环境变量的配置 在“系统”面板的左上角选择“高级系统设置”,在弹出的系统属性中选择”高级“项,然后点击右下角的“环境变量(N)...”,就此进入JAVA环境变量的配置. 如果 ...

c&plus;&plus; windows 获取mac地址

c++ windows 获取mac地址 GetAdaptersInfo 用windows api获取mac地址和硬盘id编号 aa

android获取Mac地址和IP地址

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

在Web中获取MAC地址

很多时候都很难琢磨客户在想什么,也许是自己业务经验不足,也许是客户要显示出他在软件方面也非常的专业.记得以前听过一个故事,说一个富人想娶个媳妇,然后他比较钟意的有三个女人,然后就想从三个女人中选一个, ...

随机推荐

Vertica 分区表设计

Vertica数据库中的表只是一个逻辑概念. 实际存储在磁盘上的是projection. 当创建一张表,没有创建projection时,那么插入数据的时候会自动创建一个默认的projection.如果 ...

&lbrack;LeetCode&rsqb; Validate IP Address 验证IP地址

In this problem, your job to write a function to check whether a input string is a valid IPv4 addres ...

C&num; 操作IIS方法集合

如果在win8,win7情况下报错:未知错误(0x80005000) 见http://blog.csdn.net/ts1030746080/article/details/8741399 using ...

html常用单词和各种少见标签

常用单词: 空格  align="left"valign="top"align="center"valign="middle&qu ...

2017年2月16日 分析下为什么spring 整合mybatis后为啥用不上session缓存

因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存. 习惯是本地缓存自己用map写或者引入第三方的本地缓存框架ehcache,Guava 所以提出来纠结下 实验 ...

Java中的继承抽象类和接口

一.总结 1.使用extends关键字继承,eg: class Student extends Persion { ...}; 2.Java编程规范中类的首字母大写,方法的首字母小写单词首字母代谢,e ...

web 对接 platform

一个项目拆成web和platform,web不对接数据库,只调用各个platform,每个平台负责出一个httpclient的client-jar包,封装好curd方法给web端调用,入参和出参用ja ...

Vivado绑定外部verilog编辑器

前言 由于Vivado自带的verilog编辑器确实难用,写起来效率不高,因而寻找到了以下教程. 解决方案 引用sublime作为vivado外部verilog编辑器 sublime text中文编码 ...

Uploading File using Ajax and receiving binary data in Asp&period;net &lpar;C&num;&rpar;&lbrack;转&rsqb;

基础知识,可由此衍生.原文:http://uniapple.net/blog/?p=2050 In this post, I will show you how to upload a file us ...

转:RAC中比较replay&comma; replayLast&comma; and replayLazily

A co-worker recently asked me about the difference between -replay, -replayLast, and -replayLazily i ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
服务器端: package com.softeem.socket.server; import java.io.FileNotFoundException; import java.io.IOException; public class FileServer { /** * @param args */ public static void main(String[] args) { // 读取本地文件 try { java.io.FileInputStream fis = new java.io.FileInputStream( new java.io.File("d:\\数据库.zip")); // 转换成网络输出流 java.net.ServerSocket ss = new java.net.ServerSocket(9000); java.net.Socket sk = ss.accept(); //DataOutputStream 处理数据 数据的输出流 java.io.OutputStream os = new java.io.DataOutputStream( sk.getOutputStream()); // 利用网络输出流将文件传到客户端 边读边发送 int len=0; byte[] buff = new byte[1024]; while((len=fis.read(buff))!=-1){ os.write(buff, 0, len); os.flush(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 客户端: package com.softeem.socket.client; import java.io.FileNotFoundException; import java.io.IOException; import java.net.UnknownHostException; public class FileClient { /** * @param args */ public static void main(String[] args) { // 文件的输出流 try { java.io.FileOutputStream fos = new java.io.FileOutputStream( new java.io.File("e:\\database.zip ")); // 网络的输入流 java.net.Socket sk = new java.net.Socket("192.168.1.101",9000); java.io.InputStream is = new java.io.DataInputStream( sk.getInputStream()); // 接受网络输入流 写入文件 int len = 0; byte[] buff = new byte[1024]; while((len=is.read(buff))!=-1){ fos.write(buff, 0, len); fos.flush(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 有源码和体会,写的很详细和完整。
1. Java根据MAC地址获取IP地址的方法: Java中可以使用InetAddress类来获取网络上的IP地址。但是,InetAddress类并没有提供直接的方法来获取MAC地址。在Java获取MAC地址需要通过操作系统提供的API来实现。下面是一种获取MAC地址的方法: ```java import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Enumeration; public class MacUtil { public static String getMacAddress(String ipAddress) throws UnknownHostException, SocketException { InetAddress inetAddress = InetAddress.getByName(ipAddress); NetworkInterface network = NetworkInterface.getByInetAddress(inetAddress); byte[] mac = network.getHardwareAddress(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < mac.length; i++) { sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "")); } return sb.toString(); } } ``` 2. Java根据本地IP获取MAC地址的方法: Java中同样可以使用InetAddress类来获取本地IP地址。获取本地MAC地址同样需要通过操作系统提供的API来实现。下面是一种获取本地MAC地址的方法: ```java import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Enumeration; public class MacUtil { public static String getMacAddress() throws UnknownHostException, SocketException { InetAddress inetAddress = InetAddress.getLocalHost(); NetworkInterface network = NetworkInterface.getByInetAddress(inetAddress); byte[] mac = network.getHardwareAddress(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < mac.length; i++) { sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "")); } return sb.toString(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值