Вопрос по windows-applications, c# – Текстовое поле позволяет только IP-адрес в приложении Windows

1

Мне нужно текстовое поле, которое позволяет только IP-адрес. Я могу создать это в веб-приложении, но не могу сделать это в Windows-приложении. Пожалуйста, помогите мне сделать это ..

Отредактировано в соответствии с комментарием к вопросу Даррена (удаление asp.net). George Duckett
попробуй этоIP-TextBox PresleyDias
Кстати: это 2014 - & gt; Я бы лучше поговорил о "IPv4-адресе" ;) Robert
так что ... это приложение для Windows (Winforms, WCF, Silverlight) или веб-приложение (ASP.NET, ASP.NET MVC, ...) ...ASP.NET Windows ApplicationСмущает ... balexandre

Ваш Ответ

3   ответа
1

Возьмите текст, разделенный точками, если у вас получится 4 байта (как, например, числа в диапазоне 0–255), это действительный IP-адрес.

bool IsTextAValidIPAddress(string text)
{
    bool result = true;
    string[] values = text.Split(new[] { "." }, StringSplitOptions.None); //keep empty strings when splitting
    result &= values.Length == 4; // aka string has to be like "xx.xx.xx.xx"
    if(result)
        for (int i = 0; i < 4; i++) 
            result &= byte.TryParse(values[i], out temp); //each "xx" must be a byte (0-255)
    return result;
}

Или, если вы можете / хотите использоватьSystem.Net

bool IsTextAValidIPAddress(string text)
{
    System.Net.IPAddress test;
    return System.Net.IPAddress.TryParse(text,out test);
}
2

 public bool IsValidIP(string addr)
    {
        //create our match pattern
        string pattern = @"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$";
        //create our Regular Expression object
        Regex check = new Regex(pattern);
        //boolean variable to hold the status
        bool valid = false;
        //check to make sure an ip address was provided
        if (addr == "")
        {
            //no address provided so return false
            valid = false;
        }
        else
        {
            //address provided so use the IsMatch Method
            //of the Regular Expression object
            valid = check.IsMatch(addr, 0);
        }
        //return the results
        return valid;
    }
1

ASP.NET Regular Expression Validator:

<asp:RegularExpressionValidator ID="regexpName" runat="server"     
                                ErrorMessage="This expression does not validate." 
                                ControlToValidate="yourTextBox"     
                                ValidationExpression="RegEx here" />

Затем установитеValidationExpression (разрешить только IP-адреса)

\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]?)\
я хочу в приложении Windows, а не для веб-сайтов .. Amulraj
@Amulraj, вы можете использовать событие yourTextBox_Validating, чтобы захватить это, а затем использовать предоставленное мной регулярное выражение.msdn.microsoft.com/en-us/library/…

Похожие вопросы