2023-11-22 작성

Java에서 서버 호스트(host) 정보 가져오는 법

로컬, 개발, 운영 서버간 다르게 동작을 처리해야 할 경우가 있다. 이럴 때 InetAddress.getLocalHost()를 이용하여 호스트 정보를 가져와서, 로컬 서버인지 구분할 수 있다.

호스트 정보 가져오는 예제

import java.net.InetAddress;
import java.net.UnknownHostException;
import lombok.extern.slf4j.Slf4j;

public class Sample {
	public static void main(String[] args) {
		System.out.println("호스트 정보 : " + getHostInfo());
	}

	public static String getHostInfo() {
		String hostName = "";
		String hostAddr = "";
		try {
			hostName = InetAddress.getLocalHost().getHostName();
			hostAddr = InetAddress.getLocalHost().getHostAddress();

		} catch (UnknownHostException e) {
			// 예외처리
		}
		return hostName + "(" + hostAddr + ")";
	}
}

로컬 서버인지 구분하는 예제

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Sample {
	public static void main(String[] args) {
		if (isLocalServer()) {
			return;
		}
	}

	public static boolean isLocalServer() {
		String hostName = "";
		try {
			hostName = InetAddress.getLocalHost().getHostName();

			// 개발서버, 운영서버 hostName이 dev1, prd1이라고 가정함
			List<String> serverList = new ArrayList<>(Arrays.asList("dev1", "prd1"));
			if (serverList.contains(hostName)) {
				return false;
			}
		} catch (UnknownHostException e) {
			// 예외처리
		}
		return true;
	}
}