> 백엔드 개발 > C++ > 프로그래밍 방식으로 공용 IP 주소를 검색하려면 어떻게 해야 합니까?

프로그래밍 방식으로 공용 IP 주소를 검색하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2025-01-18 11:07:12
원래의
831명이 탐색했습니다.

How Can I Retrieve My Public IP Address Programmatically?

프로그래밍 방식으로 공용 IP 주소에 액세스

라우터의 공용 IP 주소를 프로그래밍 방식으로 결정하는 것은 까다로울 수 있습니다. 이 기사에서는 외부 서비스에 의존하지 않고 이를 달성할 수 있는 여러 가지 방법을 살펴봅니다.

C# 구현(비동기)

이 C# 예제에서는 효율적인 IP 주소 검색을 위해 HttpClient 클래스와 비동기식 방법을 활용합니다.

<code class="language-csharp">using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Net;

public class ExternalIP
{
    public static async Task<IPAddress> GetExternalIpAddressAsync()
    {
        string externalIpString;
        try
        {
            using (var client = new HttpClient())
            {
                externalIpString = await client.GetStringAsync("http://icanhazip.com");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error retrieving IP: {ex.Message}");
            return null;
        }

        externalIpString = externalIpString.Replace("\r\n", "").Replace("\n", "").Trim();
        if (IPAddress.TryParse(externalIpString, out var ipAddress))
        {
            return ipAddress;
        }
        return null;
    }

    public static void Main(string[] args)
    {
        Task<IPAddress> externalIpTask = GetExternalIpAddressAsync();
        externalIpTask.Wait();
        IPAddress externalIp = externalIpTask.Result ?? IPAddress.Loopback;

        Console.WriteLine(externalIp);
    }
}</code>
로그인 후 복사

C# 구현(WebClient 사용 - 덜 선호됨)

기능적이지만 WebClient 클래스는 더 이상 사용되지 않는 것으로 간주됩니다. 비교를 위한 더 간단한 예는 다음과 같습니다.

<code class="language-csharp">using System;
using System.Net;

public class ExternalIP
{
    public static void Main(string[] args)
    {
        string externalIpString;
        try
        {
            using (var client = new WebClient())
            {
                externalIpString = client.DownloadString("http://icanhazip.com");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error retrieving IP: {ex.Message}");
            return;
        }

        externalIpString = externalIpString.Replace("\r\n", "").Replace("\n", "").Trim();
        IPAddress externalIp = IPAddress.Parse(externalIpString);

        Console.WriteLine(externalIp);
    }
}</code>
로그인 후 복사

명령줄 대안

더 빠른 검색을 위해 다음 명령줄 옵션을 고려하세요.

  • Linux 및 Windows: wget -qO- http://bot.whatismyipaddress.com
  • curl 사용: curl http://ipinfo.io/ip

이러한 방법은 공용 IP 주소를 프로그래밍 방식으로 얻기 위한 다양한 접근 방식을 제공합니다. 최신 C# 개발에는 비동기식 HttpClient 방법을 권장합니다.

위 내용은 프로그래밍 방식으로 공용 IP 주소를 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿