첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.

728x90
반응형
728x170

▶ 문자열에서 IP 주소로 변환하기 예제

using System;
using System.Linq;

int[] ipAddressElementArray = ConvertIPAddress("127.0.0.1:8000");

if(ipAddressElementArray == null)
{
    Console.WriteLine("문자열을 IP 주소로 변환할 수 없습니다.");
}
else
{
    for(int i = 0; i < ipAddressElementArray.Count(); i++)
    {
        if(i > 0 && i < 4)
        {
            Console.Write(".");
        }
        else if(i == 4)
        {
            Console.Write(":");
        }

        Console.Write(ipAddressElementArray[i]);
    }

    Console.WriteLine();
}

 

728x90

 

▶ 문자열에서 IP 주소로 변환하기

using System.Linq;

#region 문자열에서 IP 주소로 변환하기 - ConvertIPAddress(source)

/// <summary>
/// 문자열에서 IP 주소로 변환하기
/// </summary>
/// <param name="source">소스 문자열</param>
/// <returns>IP 주소</returns>
public int[] ConvertIPAddress(string source)
{
    string[] sourceArray = new string[4];
    int      port        = 0;
    int[]    targetArray = new int[5];

    try
    {
        sourceArray = source.Trim().Split('.');

        if(sourceArray.Count() != 4)
        {
            return null;
        }

        if(sourceArray[3].Contains(":"))
        {
            port = int.Parse(sourceArray[3].Substring(sourceArray[3].IndexOf(":") + 1));

            sourceArray[3] = sourceArray[3].Substring(0, sourceArray[3].IndexOf(":"));
        }
 
        for(int i = 0; i < 4; i++)
        {
            targetArray[i] = int.Parse(sourceArray[i]);
        }
 
        targetArray[4] = port;
 
        for(int i = 0; i < 5; i++)
        {
            if(i == 4)
            {
                if(targetArray[i] > 65535)
                {
                    return null;
                }
            }
            else
            {
                if(targetArray[i] < 0)
                {
                    return null;
                }

                if(targetArray[i] > 255)
                {
                    return null;
                }
            }
        }
    }
    catch
    {
        return null;
    }

    return targetArray;
}

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요