004. Local IP란?
Local IP는 내부 네트워크(Private Network) 에서만 사용되는 IP 주소를 의미합니다. 이 IP는 인터넷에서 직접 접근할 수 없으며, 같은 네트워크 내에서만 통신할 수 있습니다.
내부 네트워크에서만 사용 -> 외부 인터넷에서는 보이지 않음
공유기, 사설 네트워크, 기업 내부망에서 사용
NAT(Network Address Translation) 을 통해 인터넷과 통신 가능
🖥️ Local IP 주소 대역
RFC1981 표준에 따라 Local IP(사설 IP) 대역이 저장되어있습니다.
IP 대역 주소 범위 사용 예
✅ A 클래스: 10.0.0.0 ~ 10.255.255.255 (대기업, 클라우드 네트워크)
✅ B 클래스: 172.16.0.0 ~ 172.31.255.255 (기업 네트워크)
✅ C 클래스: 192.168.0.0 ~ 192.168.255.255 (가정용 공유기, 소규모 네트워크)
📌 이 IP 주소들은 인터넷에서 직접 사용할 수 없으며, 공유기나 NAT를 통해 변환 후 인터넷과 통신합니다.
✅ Local IP 사용 사례**
가정용 공유기
공유기에 연결된 모든 기기(PC, 스마트폰)는 192.168.x.x 대역의 Local IP를 사용.
공유기가 NAT를 통해 인터넷과 연결.
기업 네트워크
내부 서버, 직원 컴퓨터는 10.x.x.x 또는 172.16.x.x 대역의 Local IP를 사용.
인터넷 사용 시 NAT를 통해 공인 IP로 변환.
클라우드 환경 (AWS, GCP, Azure)
VPC(가상 네트워크) 내부에서 EC2 인스턴스는 Local IP를 사용 (10.0.0.x).
외부와 통신할 때 NAT Gateway 또는 Elastic IP 사용.
🚀 Local IP 정리
✔️ Local IP는 내부 네트워크에서만 사용되는 사설 IP 주소
✔️ 인터넷에서는 직접 접근할 수 없으며, NAT를 통해 변환해야 인터넷과 연결됨
✔️ IP 대역은 10.x.x.x, 172.16.x.x, 192.168.x.x로 지정됨
✔️ 가정, 기업 네트워크, 클라우드 환경에서 필수적으로 사용됨
Local IP 확인 방법
🔹 방법 1: ifconfig 명령어 사용
ifconfig | grep "inet "
# 출력 예시: inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
🔹 방법 2: ipconfig getifaddr en0
✔️ en0은 Wi-Fi 인터페이스, en1 또는 en2는 유선 이더넷 인터페이스일 수 있음.
ipconfig getifaddr en0
# 출력 예시: 192.168.1.10
Java 에서 Local IP 취득 방법
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class NetworkUtils {
public static String getLocalIp() {
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress inetAddress = addresses.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress.isSiteLocalAddress()) {
return inetAddress.getHostAddress(); // ✅ 사설 IP 반환 (예: 192.168.x.x)
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return "Unknown";
}
public static void main(String[] args) {
System.out.println("Local IP: " + getLocalIp());
}
}
Last updated