javaWeb开发,如何取得客户端的MAC,注意,客户端是子网的一个PC(开发一个网站,关键词优化)

时间:2024-05-06 05:58:32 作者 : 石家庄SEO 分类 : 关键词优化
  • TAG :

    javaWeb%E5%BC%80%E5%8F%91%EF%BC%8C%E5%A6%82%E4%BD%95%E5%8F%96%E5%BE%97%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84MAC%EF%BC%8C%E6%B3%A8%E6%84%8F%EF%BC%8C%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%98%AF%E5%AD%90%E7%BD%91%E7%9A%84%E4%B8%80%E4%B8%AAPC

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.InetAddress;importjava.net.NetworkInterface;/*与系统相关的一些常用工具方法.*@authorlvbogun@version1.0.0/publicclassSystemTool{/获取当前操作系统名称.return操作系统名称例如:windowsxp,linux等.*/publicstaticStringgetOSName(){returnSystem.getProperty("os.name").toLowerCase();}/获取unix网卡的mac地址.非windows的系统默认调用本方法获取.如果有特殊系统请继续扩充新的取mac地址方法.@returnmac地址*/publicstaticStringgetUnixMACAddress(){Stringmac=null;BufferedReaderbufferedReader=null;Processprocess=null;try{//linux下的命令,一般取eth0作为本地主网卡process=Runtime.getRuntime().exec("ifconfigeth0");//显示信息中包含有mac地址信息bufferedReader=newBufferedReader(newInputStreamReader(process.getInputStream()));Stringline=null;intindex=-1;while((line=bufferedReader.readLine())!=null){//寻找标示字符串[hwaddr]index=line.toLowerCase().indexOf("hwaddr");if(index>=0){//找到了//取出mac地址并去除2边空格mac=line.substring(index+"hwaddr".length()+1).trim();break;}}}catch(IOExceptione){e.printStackTrace();}finally{try{if(bufferedReader!=null){bufferedReader.close();}}catch(IOExceptione1){e1.printStackTrace();}bufferedReader=null;process=null;}returnmac;}/获取widnows网卡的mac地址.@returnmac地址/publicstaticStringgetWindowsMACAddress(){Stringmac=null;BufferedReaderbufferedReader=null;Processprocess=null;try{//windows下的命令,显示信息中包含有mac地址信息process=Runtime.getRuntime().exec("ipconfig/all");bufferedReader=newBufferedReader(newInputStreamReader(process.getInputStream()));Stringline=null;intindex=-1;while((line=bufferedReader.readLine())!=null){System.out.println(line);//寻找标示字符串[physicalindex=line.toLowerCase().indexOf("physicaladdress");if(index>=0){//找到了index=line.indexOf(":");//寻找":"的位置if(index>=0){System.out.println(mac);//取出mac地址并去除2边空格mac=line.substring(index+1).trim();}break;}}}catch(IOExceptione){e.printStackTrace();}finally{try{if(bufferedReader!=null){bufferedReader.close();}}catch(IOExceptione1){e1.printStackTrace();}bufferedReader=null;process=null;}returnmac;}/windows7专用获取MAC地址@return@throwsException*/publicstaticStringgetMACAddress()throwsException{//获取本地IP对象InetAddressia=InetAddress.getLocalHost();//获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。byte[]mac=NetworkInterface.getByInetAddress(ia).getHardwareAddress();//下面代码是把mac地址拼装成StringStringBuffersb=newStringBuffer();for(inti=0;i<mac.length;i++){if(i!=0){sb.append("-");}//mac[i]&0xFF是为了把byte转化为正整数Strings=Integer.toHexString(mac[i]&0xFF);sb.append(s.length()==1?0+s:s);}//把字符串所有小写字母改为大写成为正规的mac地址并返回returnsb.toString().toUpperCase();}}写一个全局拦截的servlet,只要有请求的时候就调用这个类里面的获取mac地址的方法1234567891011121314Stringos=getOSName();System.out.println(os);if(os.equals("windows7")){Stringmac=getMACAddress();System.out.println(mac);}elseif(os.startsWith("windows")){//本地是windowsStringmac=getWindowsMACAddress();System.out.println(mac);}else{//本地是非windows系统一般就是unixStringmac=getUnixMACAddress();System.out.println(mac);}记得判断一下是什么系统

本文:javaWeb开发,如何取得客户端的MAC,注意,客户端是子网的一个PC的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:计算机专业基础课程都有哪些?下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18