Java: MAC Address 조회하기 예제

2024. 12. 10. 10:16·개발중/Spring Boot
728x90
반응형

 

IP 구하는 메서드 구현

    public static String getIpAddress(HttpServletRequest request) {
        String ipAddress = "";
        try{
            if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
                return ipAddress = request.getRemoteAddr();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            return ipAddress;
        }
    }

 

MAC 주소 구하는 메서드 구현

    public static String getMacAddress(String ipAddress) {
        String macAddress = "-";
        try {
            InetAddress inetAddress = InetAddress.getByName(ipAddress);
            NetworkInterface network = NetworkInterface.getByInetAddress(inetAddress);

            if (network == null || network.isLoopback()) {
                // 로컬 머신의 기본 네트워크 인터페이스를 가져옴
                network = NetworkInterface.getNetworkInterfaces()
                        .asIterator()
                        .next(); // 첫 번째 네트워크 인터페이스 사용
            }

            if (network != null) {
                byte[] mac = network.getHardwareAddress();


                if (mac != null) {
                    StringBuilder macBuilder = new StringBuilder();
                    for (byte b : mac) {
                        macBuilder.append(String.format("%02X:", b));
                    }
                    macAddress = macBuilder.substring(0, macBuilder.length() - 1); // 마지막 콜론 제거
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return macAddress;
    }

 

HttpServletRequest 로 ip 를 구하고 ip 를 활용해서 mac 주소를 구한다.

 

 

String ipAddress = NetworkInfo.getIpAddress(request);
String macAddress = NetworkInfo.getMacAddress(ipAddress);
728x90
반응형
저작자표시 (새창열림)

'개발중 > Spring Boot' 카테고리의 다른 글

@JsonTypeInfo 활용 사례와 예제  (0) 2025.03.17
package javax.xml.bind does not exist 해결  (0) 2024.12.11
Spring Cache 이해하고 사용하기: 성능 최적화를 위한 데이터 캐싱 도구  (0) 2024.11.19
ApplicationListener 를 이용해서 어플리케이션 기동시 에러날 경우에 대처하기.  (0) 2024.09.19
Mono와 Flux의 차이점과 활용법 - Spring WebFlux  (0) 2024.06.11
'개발중/Spring Boot' 카테고리의 다른 글
  • @JsonTypeInfo 활용 사례와 예제
  • package javax.xml.bind does not exist 해결
  • Spring Cache 이해하고 사용하기: 성능 최적화를 위한 데이터 캐싱 도구
  • ApplicationListener 를 이용해서 어플리케이션 기동시 에러날 경우에 대처하기.
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (932)
      • 개발중 (634)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리눅스 마스터 1급
    네트워크 관리사 자격증
    git
    REST API
    Git 저장소
    리눅스 마스터 1급 요약
    docker
    네트워크 관리사 2급
    네트워크 관리사 요약
    BackendDevelopment
    springboot
    네트워크 관리사 실기
    쿠버네티스
    리눅스 마스터 요약
    리눅스 1급 요약
    네트워크 관리사
    redis
    파이썬
    네트워크 관리사 학점
    VUE
    리눅스 마스터 1급 정리
    파이썬 알고리즘
    네트워크 관리사 2급 실기
    java
    리눅스 마스터
    스프링
    알고리즘
    쿠버네티스 스터디
    jpa
    Spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
Java: MAC Address 조회하기 예제
상단으로

티스토리툴바