C# :: Aufgabe #83

13 Lösungen Lösungen öffentlich

IP Adresse validieren

Anfänger - C# von MitoG - 02.01.2015 um 04:38 Uhr
Schreiben sie eine Consolenanwendung die eine IP Adresse als String entgegen nimmt und validieren sie diese.
Nutzen sie dabei nur den Namespace:
"System"
Der String muss als String verarbeitet werden.

Beispiele:

"192.168.0.1" <- True
"255.255.255.255" <- True
"1.1.256.302" <- False

Lösungen:

1x
vote_ok
von eulerscheZhl (5230 Punkte) - 04.01.2015 um 17:20 Uhr
Quellcode ausblenden C#-Code
using System;

namespace trainYourProgrammer
{
	class MainClass
	{
		private static bool isValid(string ip) {
			string[] parts = ip.Split ('.');
			if (parts.Length != 4) //keine 4 Blöcke
				return false;
			foreach (string s in parts) {
				int number;
				if (!int.TryParse (s, out number)) //keine Zahl
					return false;
				if (number < 0 || number > 255) //falscher Wertebereich
					return false;
			}
			return true;
		}

		static void Main(string[] args)
		{
			Console.Write ("IP eingeben: ");
			string ip = Console.ReadLine ();
			Console.WriteLine ("die eingegebene Adresse ist " + (isValid (ip) ? "" : "nicht ") + "gültig");
		}
	}
}
vote_ok
von dotLogix (150 Punkte) - 06.01.2015 um 19:47 Uhr
Quellcode ausblenden C#-Code
// ==================================================
// Copyright 2014 (C) , dotLogix
// Author: Alexander Schill <alexander@schillnet.de>.
// ==================================================

namespace ValidateIp {
    #region Using Directives
    using System;
    #endregion

    internal static class Program {
        private static void Main(string[] args) {
            Console.Write("Enter IP: ");
            var ip = Console.ReadLine();
            var parts = ip.Split(".".ToCharArray());
            var valid = true;
            foreach(var part in parts) {
                int partConvert;
                if(int.TryParse(part, out partConvert) && partConvert >= 0 && partConvert <= 255)
                    continue;
                valid = false;
                break;
            }
            Console.WriteLine(valid.ToString());
            Console.Read();
        }
    }
}
vote_ok
von Echelon (40 Punkte) - 08.01.2015 um 15:25 Uhr
Quellcode ausblenden C#-Code
class Program
    {
        static void Main(string[] args)
        {
            int blockcounter = 0;
            int block1 = 256;
            int block2 = 256;
            int block3 = 256;
            int block4 = 256;
            Console.WriteLine("Bitte geben Sie eine IP-Adresse ein:");
            string userip = Console.ReadLine();
            string[] splitter = userip.Split(new Char[]{'.'});
            try
            {
                foreach (string s in splitter)
                {
                    blockcounter++;
                    if (blockcounter == 1)
                    {
                        block1 = Convert.ToInt16(s);
                    }
                    if (blockcounter == 2)
                    {
                        block2 = Convert.ToInt16(s);
                    }
                    if (blockcounter == 3)
                    {
                        block3 = Convert.ToInt16(s);
                    }
                    if (blockcounter == 4)
                    {
                        block4 = Convert.ToInt16(s);
                    }
                }
                if ((block1 >= 1 && block1 <= 255) && (block2 >= 0 && block2 <= 255) && (block3 >= 0 && block3 <= 255) && (block4 >= 0 && block4 <= 255))
                {
                    Console.WriteLine("Ihre Eingabe entspricht einer gültigen IP-Adresse und lautet {0}.{1}.{2}.{3}", block1.ToString(), block2.ToString(), block3.ToString(), block4.ToString());
                }
                else
                {
                    Console.WriteLine("Ihre Eingabe \"{0}\" entspricht keiner gültigen IP-Adresse", userip);
                }
            }
            catch
            {
                Console.WriteLine("Ungültige Schreibweise ermittelt. Verwenden Sie nur vier Zahlen von 0 - 255, die jeweils durch einen '.' getrennt werden!");
            }
            
            
            Console.ReadKey();

        }
    }
3 Kommentare
vote_ok
von birdlab (350 Punkte) - 08.01.2015 um 15:38 Uhr
Quellcode ausblenden C#-Code
namespace IPadresse
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Type IP-adress: ");
            string ip = Convert.ToString(Console.ReadLine());
            Console.WriteLine(IsIP(ip));
            Console.ReadLine();
            
        }

        static bool IsIP(string IP)
        {
            return System.Text.RegularExpressions.Regex.IsMatch(IP, @"\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\b");
        }
    }
}
vote_ok
von Bacon2008 (260 Punkte) - 26.01.2015 um 17:19 Uhr
Quellcode ausblenden C#-Code
/*
 * Erstellt mit SharpDevelop.
 * Benutzer: especk
 * Datum: 26.01.2015
 * Zeit: 15:55
 * 
 * Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
 */
using System;

namespace IP_Adresse_validieren
{
	class Program
	{
		public static void Main(string[] args)
		{
			Console.WriteLine("Geben Sie die IP-Adresse ein");
			string adresse = Console.ReadLine();
			string[] bloecke = adresse.Split(new Char[] {'.'});
			if(bloecke.Length != 4){Console.WriteLine("Die Adresse muss aus 4 Blöcken bestehen!");
				Console.ReadKey();}
			else{
			for (int i = 0; i < bloecke.Length; i++) {
				if(bloecke[i].Length > 3){
					Console.WriteLine("Die IP-Adresse enthält zu viele Zeichen in einem Block");
					Console.ReadKey();Environment.Exit(0);
				}
			}
				int b1 = 0;
				try {
				for (int b = 0; b <= 3; b++) {
				b1 = Convert.ToInt32(bloecke[b]);
					if(b1 > 255 || b1 < 0){				
						Console.WriteLine("Die IP-Adresse enthält zu große Zahlenbereiche: {0}" , b1 );
						Console.ReadKey();Environment.Exit(0);
					}
				}
				
				Console.WriteLine("Die eingegebene IP-Adresse ist richtig");
				Console.ReadKey();
				} catch (Exception) {
					
					Console.WriteLine("Bitte nur Ziffern von 0-9 eingeben!");
					Console.ReadKey();
				}
			}}
			
		}
	}
1x
vote_ok
von Mentalist999 (680 Punkte) - 19.02.2015 um 01:28 Uhr
Quellcode ausblenden C#-Code
        public static bool Validation(string IP)
        {
            try
            {
                foreach (string s in IP.Split('.'))
                    Byte.Parse(s);

                if (IP.Split('.').Length == 4)
                    return true;
            }
            catch { }

            return false;
        }
1 Kommentar
vote_ok
von Mentalist999 (680 Punkte) - 19.02.2015 um 19:37 Uhr
Quellcode ausblenden C#-Code
    enum InternetProtocol : byte { IPv4 = 4, IPv6 = 6 }
    class Program
    {
        static void Main(string[] args)
        {
            string Info = "4 \t IPv4 Validation \n" +
                          "6 \t IPv6 Validation \n" +
                          "0 \t Exit \n";

            for (char i = 'µ'; i != '0'; Console.Clear(), Console.Write(Info), i = Console.ReadKey().KeyChar)
            {
                if (i != '4' & i != '6') continue;

                Console.Clear();
                Console.Write("IPv{0} Validation: ", i);
                Console.WriteLine("{0}\nPress any key to return..", IpValidation(Console.ReadLine(), (InternetProtocol)i));
                Console.ReadKey();
            }
        }

        public static bool IpValidation(string Address, InternetProtocol Protocol)
        {
            try
            {
                foreach (string s in Address.Split('.'))
                    Byte.Parse(s);

                if (Address.Split('.').Length == (byte)Protocol)
                    return true;
            }
            catch { }

            return false;
        }
    }
1 Kommentar
vote_ok
von LuckerLuke (60 Punkte) - 03.03.2015 um 17:16 Uhr
bin mir nicht ganz sicher ob ich die regeln eingehalten habe, aber ich wusste nicht wie man das ohne parsen lösen kann.

Quellcode ausblenden C#-Code
using System;
namespace IPvalidieren
{
    class Program
    {
        static void Main()
        {
            string eingabe;
            int lang, raus, zahl=0, dotzahl, zähler=0, savei=0;
            int[] no = new int[4];

            System.Console.WriteLine("IPv4 Adresse zur Validierung eingeben");
            eingabe = System.Console.ReadLine();

            lang = eingabe.Length;
            dotzahl = lang - eingabe.Replace(".", "").Length;

            for (int i = 0; i != lang; i++)
            {
                if (Int32.TryParse(Convert.ToString(eingabe[i]), out raus) || Convert.ToString(eingabe[i]) == "." || lang > 15 || lang < 7 || dotzahl != 3) ;
                else
                {
                    System.Console.WriteLine("IPv4 Formatierung ungültig (123.123.123.123), zum beenden ENTER drücken");
                    System.Console.ReadLine();
                }
            }

            for (int j = 0; j != 4; j++)
            {
                for (int i = 0; i != lang; i++)
                {
                    if (i == 0) { i += savei; }

                    if (Int32.TryParse(Convert.ToString(eingabe[i]), out raus))
                    {
                        zahl = zahl * 10 + raus;
                    }

                    else
                    {
                        savei = i + 1;
                        break;
                    }

                    if (zahl > 255 || zahl < 0 )
                    {
                        System.Console.WriteLine("Zahlenwert ungültig (0-255), zum beenden ENTER drücken");
                        System.Console.ReadLine();
                        return;
                    }
                }
                no[zähler] = zahl;
                zähler++;
                zahl = 0;
            }

            foreach (int i in no)
            { System.Console.Write("{0}.", i); }

            System.Console.Write("\b validiert.");
            System.Console.WriteLine();

            eingabe = System.Console.ReadLine();
            System.Console.WriteLine("zum beenden ENTER drücken");
        }
    }
}

vote_ok
von thareck (430 Punkte) - 18.03.2015 um 19:57 Uhr
Quellcode ausblenden C#-Code
        public static string ValidiereIP(string IP)
        {
            try
            {
                foreach (string s in IP.Split('.'))
                    Byte.Parse(s);

                if (IP.Split('.').Length == 4)
                    return "";

            } catch { }

            return "Ungültige Eingabe";
        }
vote_ok
von HalfDream (230 Punkte) - 26.05.2015 um 12:14 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IP_Validierung
{
    class Program
    {

        static bool IsIP(string[] IP)
        {
            if (IP.Length != 4)
                return false;
            foreach (string IPBl in IP)
            {
                int IPBlock;
                if (!int.TryParse(IPBl, out IPBlock))
                    return false;
                if (IPBlock > 255 || IPBlock < 0)
                    return false;
            }
            return true;
        }
        static void Main(string[] args)
        {
            Console.Write("Geben Sie eine IP ein: ");
            string[] IP = Console.ReadLine().Split('.');

            if (!IsIP(IP))
                Console.WriteLine("Ungültige IP");
            else
                Console.WriteLine("Gültige IP");
        }
    }
}
vote_ok
von Michi (240 Punkte) - 08.09.2015 um 09:06 Uhr
Quellcode ausblenden C#-Code
using System;

namespace ValidateIP
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            Console.WriteLine("Bitte geben Sie eine gültige IP-Adresse ein.");
            Console.WriteLine("Die IP-Adresse ist " + (IsIPValid(Console.ReadLine()) ? "gültig!" : "ungültig!"));
            Console.ReadKey();
        }

        private static bool IsIPValid(string ip)
        {
            string[] blocks = ip.Split('.');

            if (blocks.Length != 4)
                return false;

            foreach (var block in blocks)
            {
                int number;
                if (!int.TryParse(block, out number))
                    return false;
                if (number > 255 || number < 1)
                    return false;
            }
            return true;
        }
    }
}
vote_ok
von sasanaf (100 Punkte) - 03.02.2016 um 11:57 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace testmethoden
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("IP Adresse:");
                string IPAdresse = Console.ReadLine();
                bool IPYES = true;
                if (IPAdresse.Length >= 7 && IPAdresse.Length <= 15)
                {
                    int IPArrayStelle = 0, dotcounter = 0;
                    string[] IPArray = new string[4];
                    for (int IPStelle = 0; IPStelle <= IPAdresse.Length - 1; IPStelle++)
                    {
                        if (Convert.ToString(IPAdresse[IPStelle]) == ".")
                        {
                            IPArrayStelle++;
                            if (dotcounter >= 4)
                            {
                                KeineIPAdresse();
                                IPYES = false;
                                break;
                            }
                            dotcounter++;
                        }
                        else if (Convert.ToChar(IPAdresse[IPStelle]) > 47 && Convert.ToChar(IPAdresse[IPStelle]) < 57)
                        {
                            IPArray[IPArrayStelle] = IPArray[IPArrayStelle] + IPAdresse[IPStelle];
                        }
                        else
                        {
                            KeineIPAdresse();
                            IPYES = false;
                            break;
                        }
                    }
                    if (IPYES == true)
                    {
                        if (Convert.ToInt32(IPArray[IPArrayStelle]) >= 255 || dotcounter <= 2)
                        {
                            KeineIPAdresse();
                            IPYES = false;
                        }
                    }
                }
                else
                {
                    KeineIPAdresse();
                    IPYES = false;
                }
                if (IPYES == true)
                {
                    Console.WriteLine("IP Adresse validiert.\n");
                }
            }
        }
        static void KeineIPAdresse()
        {
            Console.WriteLine("Das ist keine IP Adresse!\n");
        }
    }
}
vote_ok
von stbehl (1640 Punkte) - 22.02.2018 um 13:55 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TrainYourProgrammer83
{
    class Program
    {
        static void Main(string[] args)
        {
            bool gültig = true;
            Console.WriteLine("IP-ADRESSENPRÜFUNG");
            Console.Write("Geben Sie eine IP-Adresse ein, die auf Gültigkeit überprüft werden soll: ");
            string eingabeIP = Console.ReadLine();

            //prüfen ob nur Zahlen und Punkte vorhanden
            if(eingabeIP.Length >= 16)
            {
                gültig = false;
            }
            else
            {
                for (int i = 0; i <= eingabeIP.Length-1; i++)
                {
                    if (!(Char.IsNumber(eingabeIP[i])) && eingabeIP[i] != '.')
                    {
                        gültig = false;
                    }
                }
            }
            //prüfen ob nur Zahlen und Punkte vorhanden ENDE

            if (gültig)
            {  
                string[] bloecke = eingabeIP.Split('.');
                for (int i = 0; i <= bloecke.Length -1; i++)
                {
                    //prüfe Anzahl der Ziffern der Dezimalblöcke
                    if (bloecke[i].Length >= 4)
                    {
                        gültig = false;
                    }
                    //prüfe Anzahl der Ziffern der Dezimalblöcke ENDE

                    //prüfe ob 0 an erster Stelle der Dezimalblöcke deren Länge >= 2
                    if (bloecke[i].Length >= 2)
                    {
                        if (Convert.ToInt32(bloecke[i][0]) == 48)
                        {
                            gültig = false;
                        }
                    }
                    //prüfe ob 0 an erster Stelle der Dezimalblöcke deren Länge >= 2 ENDE

                    //prüfe ob Werte der Dezimalblöcke > 255
                    if (Convert.ToInt32(bloecke[i]) > 255)
                    {
                        gültig = false;
                    }
                    //prüfe ob Werte der Dezimalblöcke > 255 ENDE
                }
            }


            Console.WriteLine(gültig);
            Console.ReadKey();


        }
    }
}
2105022

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.