IP(Internet Protocol) 주소란 네트워크 하드웨어에 부여되는 고유한 주소를 말합니다. 이 주소를 통해 컴퓨터는 같은 네트워크에 있는 다른 장치뿐만 아니라 전 세계의 장치와도 통신할 수 있습니다. IP 주소는 숫자 또는 문자의 조합으로 구성됩니다.
인터넷에 연결된 모든 기기는 서로 다른 고유한 IP 주소를 가져야 합니다. 즉, 수십억 개의 IP 주소가 필요하다는 뜻인데, 이러한 수요를 충족하기 위해 새로운 IP 버전인 IPv6가 등장하게 되었습니다.
사설 IP 주소(Private IP Address)란?
사설 IP 주소는 가정이나 회사처럼 로컬 네트워크에 연결된 기기에 할당되는 주소입니다. 하나의 ISP(인터넷 서비스 제공업체)에 여러 대의 기기를 연결하더라도, 각 기기에는 서로 중복되지 않는 고유한 사설 IP 주소가 부여됩니다.
중요한 점은 이러한 사설 IP 주소는 외부 네트워크에서 직접 접근할 수 없다는 것입니다. 예를 들면 다음과 같습니다.
192.168.1.1
C# 예제 코드
아래 예제는 C#에서 Dns.GetHostEntry 메서드를 사용하여 현재 컴퓨터의 IPv4 주소를 조회하는 방법을 보여줍니다. 머신 이름을 기반으로 호스트 정보를 가져온 뒤, 주소 목록 중 IPv4(AddressFamily.InterNetwork)에 해당하는 주소만 필터링하여 반환합니다.
class Program{
static void Main(string[] args){
string IPAddress = GetIPAddress();
System.Console.WriteLine(IPAddress);
Console.ReadLine();
}
public static string GetIPAddress(){
string IPAddress = string.Empty;
IPHostEntry Host = default(IPHostEntry);
string Hostname = null;
Hostname = System.Environment.MachineName;
Host = Dns.GetHostEntry(Hostname);
foreach (IPAddress IP in Host.AddressList){
if (IP.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork){
IPAddress = Convert.ToString(IP);
}
}
return IPAddress;
}
}실행 결과
192.168.1.1
참고 사항
위 코드는 시스템에 등록된 모든 네트워크 인터페이스 중 IPv4 주소만 골라내기 때문에, 여러 개의 네트워크 어댑터가 있는 환경에서는 마지막으로 발견된 IPv4 주소가 반환됩니다. 필요에 따라 조건문 안에서 break를 추가해 첫 번째 주소만 가져오도록 수정할 수도 있습니다.