Method by which java gets the mac address based on the local IP

  • 2020-08-22 21:58:14
  • OfStack

This article shares the specific code of java getting mac address according to local IP for your reference. The specific content is as follows


import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

public class MacAddress {

 /**
 * @param args
 * @throws UnknownHostException 
 * @throws SocketException 
 */
 public static void main(String[] args) throws UnknownHostException, SocketException {

 InetAddress ia = InetAddress.getLocalHost();
 System.out.println(ia);
 getLocalMac(ia);
 }
 private static void getLocalMac(InetAddress ia) throws SocketException {
 // TODO Auto-generated method stub
 // Get network card, get address 
 byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
 
 System.out.println("mac Array length: "+mac.length);
 StringBuffer sb = new StringBuffer("");
 for(int i=0; i<mac.length; i++) {
  if(i!=0) {
  sb.append("-");
  }
  // Bytes converted to integers 
  int temp = mac[i]&0xff;
  String str = Integer.toHexString(temp);
  System.out.println(" every 8 position :"+str);
  if(str.length()==1) {
  sb.append("0"+str);
  }else {
  sb.append(str);
  }
 }
 System.out.println(" This machine MAC address :"+sb.toString().toUpperCase());
 }
}

The following method is to get the client request address


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;
 }

Related articles: