62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
|
/*
|
|||
|
if ipAddress consists of 4 numbers
|
|||
|
and
|
|||
|
if each ipAddress number has no leading zeroes
|
|||
|
and
|
|||
|
if each ipAddress number is in range 0 - 255
|
|||
|
|
|||
|
then ipAddress is valid
|
|||
|
|
|||
|
else ipAddress is invalid
|
|||
|
*/
|
|||
|
|
|||
|
string ip_addr_1 = "94.88.1.16";
|
|||
|
string ip_addr_2 = "255.0.0.255";
|
|||
|
string ip_addr_3 = "555..0.555";
|
|||
|
string ip_addr_4 = "255.015.0.255";
|
|||
|
string ip_addr_5 = "16.f.0.16";
|
|||
|
string[] ip_addrs = {ip_addr_1, ip_addr_2, ip_addr_3, ip_addr_4, ip_addr_5};
|
|||
|
|
|||
|
bool validate_ip(string ipv4) {
|
|||
|
bool valid = false;
|
|||
|
bool lenght = false;
|
|||
|
bool zeroes = false;
|
|||
|
bool range = false;
|
|||
|
string[] ip_segs = ipv4.Split('.');
|
|||
|
foreach (string segm in ip_segs){
|
|||
|
lenght = segm.Length>0 && segm.Length<=3;
|
|||
|
if(lenght){
|
|||
|
Int16 segment;
|
|||
|
valid = Int16.TryParse(segm, out segment);
|
|||
|
if(!valid){
|
|||
|
Console.Write($"({segm}) is a invalid ipv4 segment! ");
|
|||
|
return false;
|
|||
|
} else {
|
|||
|
if(segm.StartsWith("0") && segm.Length > 1 || segment < 0 || segment > 255){
|
|||
|
Console.Write($"({segm}) is a invalid ipv4 range! ");
|
|||
|
return false;
|
|||
|
} else {
|
|||
|
range = true;
|
|||
|
zeroes = true;
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
Console.Write($"({segm}) is a invalid ipv4 lenght! ");
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
if(valid && zeroes && lenght && range) {
|
|||
|
return true;
|
|||
|
} else {
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
foreach (string ip_addr in ip_addrs){
|
|||
|
if(validate_ip(ip_addr)){
|
|||
|
Console.WriteLine($"{ip_addr} is a valid IP");
|
|||
|
} else {
|
|||
|
Console.WriteLine($"{ip_addr} is not a valid IP");
|
|||
|
}
|
|||
|
}
|