來源:http://www.cnblogs.com/hxsyl/p/3422191.html
/**
* 獲取客戶端ip
*
* @param request
* @return
*/
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.getRemoteAddr();
}
if ("0:0:0:0:0:0:0:1".equals(ip)) {
return "127.0.0.1";
}
return ip;
}
/**
* 獲取MAC地址(如果獲取ip為127.0.0.1的話就不會得到值了。)
* @throws UnknownHostException
* @throws SocketException
*/
public static String getMACAddress(String ip) throws SocketException, UnknownHostException {
if ("127.0.0.1".equals(ip)) {
return getLocalMac();
}
String str;
String macAddress = "";
try {
Process process = Runtime.getRuntime().exec("nbtstat -A " + ip);
InputStreamReader inputReader = new InputStreamReader(
process.getInputStream());
LineNumberReader lineReader = new LineNumberReader(inputReader);
for (int i = 1; i < 100; i++) {
str = lineReader.readLine();
if (str != null) {
if (str.indexOf("=") > 1) {
macAddress = str.substring(str.indexOf("=") + 2,
str.length());
break;
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
return macAddress;
}
//獲取本機mac
private static String getLocalMac() throws SocketException, UnknownHostException {
InetAddress ia = InetAddress.getLocalHost();
// 獲取網路卡,獲取地址
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < mac.length; i++) {
if (i != 0) {
sb.append("-");
}
// 位元組轉換為整數
int temp = mac[i] & 0xff;
String str = Integer.toHexString(temp);
if (str.length() == 1) {
sb.append("0" + str);
} else {
sb.append(str);
}
}
return sb.toString().toUpperCase();
}
java獲取客戶端ip和mac
相關文章
- java 獲取客戶端真實ipJava客戶端
- JSF/JAVA 根據IP獲取客戶端Mac地址JSJava客戶端Mac
- pomelo獲取客戶端IP客戶端
- java web 通過request獲取客戶端IPJavaWeb客戶端
- ASP.NET獲取客戶端IP及MAC地址ASP.NET客戶端Mac
- c# 獲取客戶端IPC#客戶端
- 獲取客戶端真實IP客戶端
- 獲取客戶端Mac地址客戶端Mac
- Java面試題-如何獲取客戶端真實IPJava面試題客戶端
- .net 獲取客戶端真實ip客戶端
- Django透過request獲取客戶端IPDjango客戶端
- 一次獲取客戶端 IP 記錄客戶端
- 伺服器獲取真實客戶端 IP伺服器客戶端
- nginx反向代理獲取客戶端的真實IP和域名Nginx客戶端
- 服務端如何獲取客戶端請求IP地址服務端客戶端
- JS獲取客戶端IP地址與機器名JS客戶端
- 在SelfHost專案中獲取客戶端IP地址客戶端
- java獲取ip地址和mac地址JavaMac
- Nginx 反向代理後如何獲取真實客戶端 IPNginx客戶端
- 獲取SQL Server中連線的客戶端IP地址SQLServer客戶端
- Silverlight中利用WCF獲取客戶端IP客戶端
- 在OwinSelfHost專案中獲取客戶端IP地址客戶端
- Java 中獲取MAC地址 和IP地址JavaMac
- javascript獲取客戶端ip地址省市和運營商程式碼例項JavaScript客戶端
- Spring 客戶端 IP 地址獲取及儲存細節Spring客戶端
- 阿里雲CDN + nginx多級代理獲取客戶端IP阿里Nginx客戶端
- nginx多級代理下如何獲取客戶端真實IPNginx客戶端
- 在容器服務中獲取客戶端真實源 IP客戶端
- Nacos - 客戶端例項列表獲取客戶端
- 乾貨:不同場景容器內獲取客戶端源IP的方法客戶端
- ABP vNext 審計日誌獲取真實客戶端IP客戶端
- asp.net 獲取客戶端瀏覽器訪問的IP地址ASP.NET客戶端瀏覽器
- 深入分析幾種PHP獲取客戶端IP的情況轉PHP客戶端
- Java/JSP獲得客戶端網路卡MAC地址的三種方法解析(附:獲得真實IP)JavaJS客戶端Mac
- 【知識積累】伺服器端獲取客戶端的IP地址(當客戶端呼叫由Axis開發的WebService)伺服器客戶端Web
- PHP獲取客戶端、PHP獲取伺服器相關資訊PHP客戶端伺服器
- 從刷票瞭解如何獲得客戶端IP客戶端
- 在Intranet中獲得客戶端IP地址客戶端