IP 주소 정규표현 만들어주시기 부탁드립니다.

익명 사용자의 이미지


1
1.1
1.1.1
1.1.1.1

이런식으로
ip주소를 맞게 입력했나 알아 보는 정표현식을 만들려고 합니다.
(ip주소 형식에 맞게)

혹시 가능하신분 부탁드려요

쓰일곳은 ip접속 제한 부분이라서.

1 이라고 입력하면 A클래스 1로 시작하는 것은 다 막거나 허용합니다.

익명 사용자의 이미지

자문 자답입니다.

^(\d|[01]?\d\d|2[0-4]\d|25[0-5])$|^(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])$|^(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])$|^(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])$

혹시 필요하신분을위해서..

shint의 이미지

점 3개 잘라서
256사이의 숫자인지 확인'하는게 알아보기 편하겠네요... ㅡ_ㅡ;;;

Qt로 만들어봤습니다.

//문자열에서 숫자만 찾기
int fn_is_number(QString qstext)
{
    int i=0;
    for(i=0; i<qstext.count(); i++)
    {
        if(qstext.at(i).isNumber() == true)
        {
 
        }
        else
        {
            //하나라도 숫자가 아니면. 리턴0
            return 0;
        }
    }
    //모두 숫자.이면 리턴1
    return 1;
}
 
int fn_check_ip(QString qstext)
{
    QStringList qltext = qstext.split(".", QString::SkipEmptyParts);
    if(4 == qltext.count())
    {
        int n = 0;
        int cnt = 0;
        int i = 0;
        for(i=0; i<4; i++)
        {
            qstext = qltext[i];
            n = qstext.toInt();
 
            //숫자'인지 확인하다.
            if(fn_is_number(qstext) == true)
            {
            }
            else
            {
                qDebug() << n << "out";
                continue;
            }
 
            if(0 <= n && n <= 255)
            {
                cnt++;
            }
        }
 
        if(cnt == 4)
        {
            qDebug() << "ok" << qltext << cnt;
            return 1;
        }
    }
    return 0;
}

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

snowall의 이미지

http://www.regular-expressions.info/examples.html

정규표현식 예제에 있네요

피할 수 있을때 즐겨라! http://melotopia.net/b

shint의 이미지

보기 어려워요.
무슨 말인지도 모르겠고... ㅡ_ㅡ;;;

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

snowall의 이미지

\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b

각 자릿수별로 0~255 사이에 있는지 검사하는 수식이네요.

피할 수 있을때 즐겨라! http://melotopia.net/b