public Ip4Addr Parse(string ipAddressString) { Ip4Addr ip4Addr = new Ip4Addr(ipAddressString); IPAddress ipAddress; if (IPAddress.TryParse(ipAddressString, out ipAddress)) { if (ipAddress.AddressFamily != AddressFamily.InterNetwork) { string errorMessage = string.Format(SpfParserResource.InvalidValueErrorMessage, "ipv4 address", ipAddressString); string markdown = string.Format(SpfParserMarkdownResource.InvalidValueErrorMessage, "ipv4 address", ipAddressString); ip4Addr.AddError(new Error(Id, ErrorType.Error, errorMessage, markdown)); } } else { string errorMessage = string.Format(SpfParserResource.InvalidValueErrorMessage, "ip address", ipAddressString); string markdown = string.Format(SpfParserMarkdownResource.InvalidValueErrorMessage, "ip address", ipAddressString); ip4Addr.AddError(new Error(Id, ErrorType.Error, errorMessage, markdown)); } return(ip4Addr); }
public void Test(string ipString, int errorCount, string errorStringPattern) { Ip4Addr ip4Addr = _parser.Parse(ipString); Assert.That(ip4Addr.Value, Is.EqualTo(ipString)); Assert.That(ip4Addr.ErrorCount, Is.EqualTo(errorCount)); Assert.That((ip4Addr.Errors.FirstOrDefault()?.Message ?? string.Empty).Contains(errorStringPattern), Is.True); }
//"ip4" ":" ip4-network [ ip4-cidr-length ] public Term Parse(string mechanism, Qualifier qualifier, string arguments) { string[] splits = arguments.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); Ip4Addr ipAddress = _ip4AddrParser.Parse(splits.ElementAtOrDefault(0)); Ip4CidrBlock cidrBlock = _cidrBlockParser.Parse(splits.ElementAtOrDefault(1)); return(new Ip4(mechanism, qualifier, ipAddress, cidrBlock)); }