using System.Net; using System.Net.Sockets; namespace IP_port_checker.PortScanner { public class IPValidator { public static IPAddress ValidateAndReadIPv4orIPv6(ref bool isIPv4) { while (true) { IPAddress? address = null; string? ip = Console.ReadLine(); if (IPAddress.TryParse(ip, out IPAddress? ipv4) && ipv4.AddressFamily == AddressFamily.InterNetwork) { address = ipv4; isIPv4 = true; } else if (IPAddress.TryParse(ip, out IPAddress? ipv6) && ipv6.AddressFamily == AddressFamily.InterNetworkV6) { address = ipv6; isIPv4 = false; } if (address is not null) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"IP: {ip} принят"); Console.ResetColor(); return address; } Console.ForegroundColor = ConsoleColor.Red; Console.Write("Неправильный ввод ip-адреcа, попробуйте еще раз: "); Console.ResetColor(); } } } } //предыдущий способ проверки айпи 4 версии. Вечная память герою //string[] parts = ip.Split('.'); //bool IPv4Valid = parts.Length == 4 && parts.All(p => byte.TryParse(p, out _));