/// <summary> /// Initializes a new instance of the <see cref="ResourceRecordInfo" /> class. /// </summary> /// <param name="domainName">The <see cref="DnsString" /> used by the query.</param> /// <param name="recordType">Type of the record.</param> /// <param name="recordClass">The record class.</param> /// <param name="timeToLive">The time to live.</param> /// <param name="rawDataLength">Length of the raw data.</param> /// <exception cref="System.ArgumentNullException">If <paramref name="domainName" /> is null or empty.</exception> public ResourceRecordInfo(DnsString domainName, ResourceRecordType recordType, QueryClass recordClass, int timeToLive, int rawDataLength) { DomainName = domainName ?? throw new ArgumentNullException(nameof(domainName)); RecordType = recordType; RecordClass = recordClass; TimeToLive = timeToLive; RawDataLength = rawDataLength; }
public SrvRecord(ResourceRecordInfo info, ushort priority, ushort weigth, ushort port, DnsString target) : base(info) { Priority = priority; Weight = weigth; Port = port; Target = target; }
public void DnsString_Equals() { var val = "Aäb.bÜlöb.cscöälüpqläö.d.com."; DnsString name = DnsString.ParseQueryString(val); DnsString name2 = DnsString.ParseQueryString(val); Assert.True(name.Equals(name2)); }
public void DnsString_EqualsString() { var val = "abc."; DnsString name = DnsString.ParseQueryString(val); string name2 = val; Assert.True(name.Equals(name2)); }
public void QueryName_AcceptsService() { var name = DnsString.ParseQueryString("_abc._xyz._example.com"); var strValue = name.ToString(); // ending Assert.Equal("_abc._xyz._example.com.", strValue); }
public void DnsString_NotEqualsNull() { var name = DnsString.Parse("abc"); DnsString name2 = null; // ReSharper disable once ExpressionIsAlwaysNull Assert.False(name.Equals(name2)); }
public void DnsString_EqualsString() { var val = "abc."; var name = DnsString.Parse(val); var name2 = val; Assert.True(name.ToString().Equals(name2)); }
public void DnsString_Hashcode() { var val = "Aäb.bÜlöb.cscöälüpqläö.d.com."; var name = DnsString.Parse(val); var name2 = DnsString.Parse(val); Assert.True(name.GetHashCode().Equals(name2.GetHashCode())); }
public void DnsString_IllegalEscape() { Action act = () => DnsString.ParseQueryString("abc.zy\\.z.com"); var ex = Record.Exception(act); Assert.Contains("not a valid host name", ex.Message); }
public void DnsString_HashcodeNot() { var val = "Aäb.bÜlöb.cscöälüpqläö.d.com."; DnsString name = DnsString.Parse(val); DnsString name2 = DnsString.Parse("asdasd"); Assert.False(name.GetHashCode().Equals(name2.GetHashCode())); }
/// <summary> /// Initializes a new instance of the <see cref="ResourceRecordInfo" /> class. /// </summary> /// <param name="domainName">The <see cref="DnsString" /> used by the query.</param> /// <param name="recordType">Type of the record.</param> /// <param name="recordClass">The record class.</param> /// <param name="timeToLive">The time to live.</param> /// <param name="rawDataLength">Length of the raw data.</param> /// <exception cref="System.ArgumentNullException">If <paramref name="domainName" /> is null or empty.</exception> public ResourceRecordInfo(DnsString domainName, ResourceRecordType recordType, QueryClass recordClass, int timeToLive, int rawDataLength) { DomainName = domainName ?? throw new ArgumentNullException(nameof(domainName)); RecordType = recordType; RecordClass = recordClass; RawDataLength = rawDataLength; InitialTimeToLive = timeToLive; _ticks = (int)(Environment.TickCount / 1000d); }
public void DnsString_ReadPuny_IDNA2003_Invalid() { // IDNA new would be: "xn--fuball-cta.example" var expected = "fussball.example."; var val = "fußball.example"; DnsString result = DnsString.Parse(val); Assert.Equal(expected, result.Value); }
public void DatagramReader_LabelTest_DnsName2() { var data = ReferenceBitData.Concat(new byte[] { 192, 23 }); var reader = new DnsDatagramReader(new ArraySegment <byte>(data.ToArray())); reader.Index = 36; DnsString name = reader.ReadDnsName(); Assert.Equal(name.Value, "eeeee.dd.c.aa.com."); }
public void DatagramReader_LabelTest_DnsName_LengthOutOfBounds() { var data = ReferenceBitData.Concat(new byte[] { 192, 23 }); var reader = new DnsDatagramReader(new ArraySegment <byte>(data.ToArray())); reader.Advance(36); DnsString name = reader.ReadDnsName(); Assert.Equal("eeeee.dd.c.aa.com.", name.Value); }
public void DnsRecordFactory_ARecord() { var data = new byte[] { 23, 24, 25, 26 }; var factory = GetFactory(data, out var reader); var info = new ResourceRecord(DnsString.Parse("example.com"), ARecord.ResourceRecordType, QueryClass.In, 0, data.Length); var result = factory.GetRecord(info, reader) as ARecord ?? throw new Exception(); Assert.Equal(result.Address, IPAddress.Parse("23.24.25.26")); }
public void DnsRecordFactory_AAAARecordNotEnoughData() { var data = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; var factory = GetFactory(data, out var reader); var info = new ResourceRecord(DnsString.Parse("example.com"), AaaaRecord.ResourceRecordType, QueryClass.In, 0, data.Length); Action act = () => factory.GetRecord(info, reader); Assert.ThrowsAny <IndexOutOfRangeException>(act); }
public void DnsRecordFactory_SRVRecordEmpty() { var data = new byte[0]; var factory = GetFactory(data, out var reader); var info = new ResourceRecord(DnsString.Parse("query.example.com"), SrvRecord.ResourceRecordType, QueryClass.In, 0, data.Length); Action act = () => factory.GetRecord(info, reader); Assert.ThrowsAny <IndexOutOfRangeException>(act); }
public void DnsRecordFactory_PTRRecordEmptyName() { var data = new byte[] { 0 }; var factory = GetFactory(data, out var reader); var info = new ResourceRecord(DnsString.Parse("query.example.com"), PtrRecord.ResourceRecordType, QueryClass.In, 0, data.Length); var result = factory.GetRecord(info, reader) as PtrRecord ?? throw new Exception(); Assert.Equal(".", result.PtrDomainName.Value); }
public void DnsRecordFactory_TXTRecordWrongTextLength() { var data = new byte[0]; var factory = GetFactory(data, out var reader); var info = new ResourceRecord(DnsString.Parse("query.example.com"), TxtRecord.ResourceRecordType, QueryClass.In, 0, data.Length); var result = factory.GetRecord(info, reader) as TxtRecord ?? throw new Exception(); Assert.Empty(result.EscapedText); }
public MgRecord(ResourceRecordInfo info, DnsString name) : base(info) { if (name == null) { throw new ArgumentNullException(nameof(name)); } MgName = name; }
public PtrRecord(ResourceRecordInfo info, DnsString ptrDName) : base(info) { if (ptrDName == null) { throw new ArgumentNullException(nameof(ptrDName)); } PtrDomainName = ptrDName; }
public void Ip_Arpa_v4_Valid() { var ip = IPAddress.Parse("8.8.4.4"); var client = new LookupClient(NameServer.GooglePublicDns); var result = DnsString.Parse(ip.GetArpaName()); var queryResult = client.QueryReverse(ip); Assert.Equal("4.4.8.8.in-addr.arpa.", result); Assert.Contains("dns.google", queryResult.Answers.PtrRecords().First().PtrDomainName); }
public void DnsRecordFactory_AAAARecord() { var data = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; var factory = GetFactory(data, out var reader); var info = new ResourceRecord(DnsString.Parse("example.com"), AaaaRecord.ResourceRecordType, QueryClass.In, 0, data.Length); var result = factory.GetRecord(info, reader) as AaaaRecord ?? throw new Exception(); Assert.Equal(result.Address, IPAddress.Parse("102:304:506:708:90a:b0c:d0e:f10")); Assert.Equal(result.Address.GetAddressBytes(), data); }
public void DnsRecordFactory_MXRecordEmptyName() { var data = new byte[] { 1, 0, 0 }; var factory = GetFactory(data, out var reader); var info = new ResourceRecord(DnsString.Parse("query.example.com"), MxRecord.ResourceRecordType, QueryClass.In, 0, data.Length); var result = factory.GetRecord(info, reader) as MxRecord ?? throw new Exception(); Assert.Equal(256, result.Preference); Assert.Equal(".", result.Exchange.Value); }
/// <summary> /// Initializes a new instance of the <see cref="SoaRecord" /> class. /// </summary> /// <param name="info">The information.</param> /// <param name="mName">Name original domain name.</param> /// <param name="rName">Name responsible domain name.</param> /// <param name="serial">The serial number.</param> /// <param name="refresh">The refresh time.</param> /// <param name="retry">The retry time.</param> /// <param name="expire">The expire time.</param> /// <param name="minimum">The minimum TTL.</param> /// <exception cref="System.ArgumentNullException"> /// If <paramref name="info"/> or <paramref name="mName"/> or <paramref name="rName"/> is null. /// </exception> public SoaRecord(ResourceRecordInfo info, DnsString mName, DnsString rName, uint serial, uint refresh, uint retry, uint expire, uint minimum) : base(info) { MName = mName ?? throw new ArgumentNullException(nameof(mName)); RName = rName ?? throw new ArgumentNullException(nameof(rName)); Serial = serial; Refresh = refresh; Retry = retry; Expire = expire; Minimum = minimum; }
public void Ip_Arpa_v4_Valid() { var ip = IPAddress.Parse("127.0.0.1"); var client = new LookupClient(); var result = DnsString.Parse(ip.GetArpaName()); var queryResult = client.QueryReverse(ip); Assert.Equal("1.0.0.127.in-addr.arpa.", result); Assert.Equal("localhost.", queryResult.Answers.PtrRecords().First().PtrDomainName); }
public MxRecord(ResourceRecordInfo info, ushort preference, DnsString domainName) : base(info) { if (domainName == null) { throw new ArgumentNullException(nameof(domainName)); } Preference = preference; Exchange = domainName; }
public void Ip_Arpa_v6_Valid() { var ip = NameServer.GooglePublicDns2IPv6.Address; var client = new LookupClient(NameServer.GooglePublicDnsIPv6); var result = DnsString.Parse(ip.GetArpaName()); var queryResult = client.QueryReverse(ip); Assert.Equal("8.8.8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.8.4.0.6.8.4.1.0.0.2.ip6.arpa.", result); Assert.Contains("dns.google", queryResult.Answers.PtrRecords().First().PtrDomainName); }
public SoaRecord(ResourceRecordInfo info, DnsString mName, DnsString rName, uint serial, uint refresh, uint retry, uint expire, uint minimum) : base(info) { MName = mName; RName = rName; Serial = serial; Refresh = refresh; Retry = retry; Expire = expire; Minimum = minimum; }
public void DnsRecordFactory_PTRRecord() { var name = DnsString.Parse("result.example.com"); var writer = new DnsDatagramWriter(); writer.WriteHostName(name.Value); var factory = GetFactory(writer.Data.ToArray()); var info = new ResourceRecordInfo("query.example.com", ResourceRecordType.PTR, QueryClass.IN, 0, writer.Data.Count); var result = factory.GetRecord(info) as PtrRecord; Assert.Equal(result.PtrDomainName, name); }