1 import java.net.InetAddress; 2 import java.net.NetworkInterface; 3 import java.net.SocketException; 4 import java.net.UnknownHostException; 5 6 public class MacAddress { 7 8 /** 9 * @param args 10 * @throws UnknownHostException 11 * @throws SocketException 12 */ 13 public static void main(String[] args) throws UnknownHostException, SocketException { 14 15 InetAddress ia = InetAddress.getLocalHost(); 16 System.out.println(ia); 17 getLocalMac(ia); 18 } 19 private static void getLocalMac(InetAddress ia) throws SocketException { 20 // TODO Auto-generated method stub 21 //獲取網卡,獲取地址 22 byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress(); 23 24 System.out.println("mac數組長度:"+mac.length); 25 StringBuffer sb = new StringBuffer(""); 26 for(int i=0; i<mac.length; i++) { 27 if(i!=0) { 28 sb.append("-"); 29 } 30 //字節轉換為整數 31 int temp = mac[i]&0xff; 32 String str = Integer.toHexString(temp); 33 System.out.println("每8位:"+str); 34 if(str.length()==1) { 35 sb.append("0"+str); 36 }else { 37 sb.append(str); 38 } 39 } 40 System.out.println("本機MAC地址:"+sb.toString().toUpperCase()); 41 } 42 }
下面這個方法是獲取客戶端請求地址
public String getClientIp(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(ip.trim().contains(",")){ String [] ips=ip.split(","); ip=ips[0]; } return ip; }