首页 > 学院 > 开发设计 > 正文

java在Win7 64位 获取客户端的IP,MAC,计算机名

2019-11-14 22:52:15
字体:
来源:转载
供稿:网友
javaWin7 64位 获取客户端的ip,MAC,计算机名
package com.javaweb.util;import java.io.IOException;import java.io.InputStreamReader;import java.io.LineNumberReader;import javax.servlet.http.HttpServletRequest;public class ClientInformation {//得到客户端IP地址public static String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("X-Forwarded-For");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("PRoxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_CLIENT_IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_FORWARDED_FOR");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;}//得到客户端MAC地址public static String getMACAddress(String ip) {String str = "";String macAddress = "";System.out.println("ipppppppppppppppppp"+ip);try {Process p = Runtime.getRuntime().exec("cmd /c C://Windows//sysnative//nbtstat.exe -a " + ip);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("MAC") > 1) {macAddress = str.substring(str.indexOf("=") + 2,str.length());break;}}}} catch (IOException e) {e.printStackTrace(System.out);}return macAddress;}//得到客户端计算机名public static String getComputerName(String ip){String computerName = "";String str = "";try {Process    p = Runtime.getRuntime().exec("cmd /c C://Windows//sysnative//nbtstat.exe -a " + ip);InputStreamReader ir = new InputStreamReader(p.getInputStream());LineNumberReader input = new LineNumberReader(ir);for (int i = 1; i < 100; i++) {try {str = input.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}if (str.indexOf("唯一") > 1) {computerName = str.substring(0, str.indexOf("<")).trim();break;}}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return computerName;}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表