본문 바로가기
개발/C#

C# 로컬IP(서버IP)정보 조회

by 혈중마라농도 2022. 1. 6.

 

  • Dns.GetHostEntry(Dns.GetHostName()) 방식:
    • 현재 호스트 이름에 매핑된 IP 주소를 가져옵니다.
    • 일반적으로 간단한 환경에서 사용하기 적합합니다.
    • 단점: 루프백 주소(127.0.0.1) 또는 사용하지 않는 네트워크 어댑터의 IP도 포함될 수 있습니다.
  • NetworkInterface 방식:
    • 활성화된 네트워크 인터페이스에서 IP 주소를 가져옵니다.
    • 다중 네트워크 환경에서 더 세밀한 필터링이 가능하며, 특정 인터페이스를 선택적으로 처리할 수도 있습니다.

 

using System;
using System.Linq;
using System.Net.NetworkInformation;
using System.Net.Sockets;

public static string GetLocalIP()
{
    try
    {
        var interfaces = NetworkInterface.GetAllNetworkInterfaces();

        foreach (var ni in interfaces)
        {
            // 활성화된 네트워크 어댑터만 처리
            if (ni.OperationalStatus == OperationalStatus.Up)
            {
                var ipProps = ni.GetIPProperties();

                foreach (var addr in ipProps.UnicastAddresses)
                {
                    // IPv4 필터링
                    if (addr.Address.AddressFamily == AddressFamily.InterNetwork)
                    {
                        return addr.Address.ToString();
                    }
                }
            }
        }
        return string.Empty;
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error retrieving local IP: {ex.Message}");
        return string.Empty;
    }
}

 

반응형

'개발 > C#' 카테고리의 다른 글

C# byte to int  (0) 2022.01.11
C# 클라이언트 Browser 정보얻기  (0) 2022.01.07
C# 파일사이즈 Long -> String 변환  (0) 2022.01.06
ASP.net 클라이언트IP 얻기  (0) 2022.01.06
c# 양력 -> 음력 변환  (0) 2021.12.05

댓글