Gå til innhold

[Løst] Regex tillate kun Ipadresse, ingen bokstaver.


Anbefalte innlegg

Jeg bruker koden under til å kontrollere input fra bruker slik at kun gyldige Ipadresser blir godtatt. Dette virker, men hvis jeg f.eks skriver A.10.0.0.1 Blir det også godtatt.

Jeg ønsker å ha det slik at bare tall og punktum godtas. Dette er nødvendig fordi jeg skal bruke "input" til å definere IPen til en server i en .bat-fil.

string input = Microsoft.VisualBasic.Interaction.InputBox("Skriv inn ønsket IP-adresse", "Endre IP", "eks: 192.168.1.1", -1, -1);
            var IpMatch = Regex.Match(input, @"(((25[0-5])|(2[0-4]\d)|([01]?\d?\d))\.){3}((25[0-5])|(2[0-4]\d)|([01]?\d?\d))");
            if (IpMatch.Success)
            {
                MessageBox.Show(input + " Valid");
            }
            else
            {
                MessageBox.Show(input + " Invalid");
            }
Endret av RMBB
Lenke til kommentar
Videoannonse
Annonse

 

I stedet for regex, hva med IPAddress.TryParse?

 

Ellers kan du putte ^ og $ inn i pattern:

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

 

Ettersom jeg har klart på finne ut så godtar IPAddress.TryParse nesten hva som helst av tall da den bare konverterer det til riktig format. (eks. 1=0.0.0.1) For å unngå feil må jeg forsikre meg om at brukeren har skrevet inn en korrekt ipadresse. Jeg forsøkte med ^$, men ikke hele utrykket. Ser det ut til å virke som det skal nå. Takk!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...