java客户端mac地址_Java 获取客户端mac地址

package com.alpha.test;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.LineNumberReader;

public class GetMac {

/**

* java获取客户端网卡的MAC地址

*

* @param args

*/

public static void main(String[] args) {

GetMac get = new GetMac();

System.out.println("1="+get.getMAC());

System.out.println("2="+get.getMAC("127.0.0.1"));

}

// 1.获取客户端ip地址( 这个必须从客户端传到后台):

// jsp页面下,很简单,request.getRemoteAddr() ;

// 因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换

// public String getMyIP() {

// try {

// FacesContext fc = FacesContext.getCurrentInstance();

// HttpServletRequest request = (HttpServletRequest) fc

// .getExternalContext().getRequest();

// return request.getRemoteAddr();

// } catch (Exception e) {

// e.printStackTrace();

// }

// return "";

// }

// 2.获取客户端mac地址

// 调用window的命令,在后台Bean里实现 通过ip来获取mac地址。方法如下:

// 运行速度【快】

public String getMAC() {

String mac = null;

try {

Process pro = Runtime.getRuntime().exec("cmd.exe /c ipconfig/all");

InputStream is = pro.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is));

String message = br.readLine();

int index = -1;

while (message != null) {

if ((index = message.indexOf("Physical Address")) > 0) {

mac = message.substring(index + 36).trim();

break;

}

message = br.readLine();

}

System.out.println(mac);

br.close();

pro.destroy();

} catch (IOException e) {

System.out.println("Can't get mac address!");

return null;

}

return mac;

}

// 运行速度【慢】

public String getMAC(String ip) {

String str = null;

String macAddress = null;

try {

Process p = Runtime.getRuntime().exec("nbtstat -A " + ip);

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

LineNumberReader input = new LineNumberReader(ir);

for (; true;) {

str = input.readLine();

if (str != null) {

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

macAddress = str

.substring(str.indexOf("MAC Address") + 14);

break;

}

}

}

} catch (IOException e) {

e.printStackTrace(System.out);

return null;

}

return macAddress;

}

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要修改IP地址,可以按照以下步骤操作: 1. 打开命令提示符:在Windows系统中,按下Win+R键,输入cmd并按下回车键打开命令提示符。 2. 输入ipconfig命令:在命令提示符中输入ipconfig并按下回车键,会显示当前计算机的网络配置信息。 3. 记下当前IP地址等信息:在ipconfig的输出信息中,找到当前计算机的IP地址、子网掩码、默认网关等信息,并记录下来。 4. 输入netsh命令:在命令提示符中输入netsh并按下回车键,进入netsh命令行模式。 5. 输入interface命令:在netsh命令行中,输入interface命令并按下回车键,会显示当前计算机的网络接口列表。 6. 选择要修改的网络接口:在interface列表中,选择要修改IP地址的网络接口,例如“以太网适配器”或“无线局域网适配器”。 7. 进入interface命令模式:在选择要修改的网络接口后,输入interface命令加上网络接口的名称(例如:interface "以太网")并按下回车键,进入该网络接口的命令模式。 8. 输入set命令:在该网络接口命令模式中,输入set命令加上要修改的IP地址等参数,例如:set address name="以太网" source=static addr=192.168.1.100 mask=255.255.255.0 gateway=192.168.1.1,其中name参数为网络接口名称,addr参数为要设置的IP地址,mask参数为子网掩码,gateway参数为默认网关。 9. 退出interface命令模式:在设置完IP地址等参数后,输入exit命令并按下回车键,退出该网络接口的命令模式。 10. 输入exit命令:在netsh命令行中,输入exit命令并按下回车键,退出netsh命令行模式。 11. 检查IP地址是否修改成功:在命令提示符中再次输入ipconfig命令并按下回车键,检查IP地址等信息是否已经修改成功。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值