- 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 |
댓글