-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAResourceRecord.ts
34 lines (29 loc) · 986 Bytes
/
AResourceRecord.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { DNSRecordType } from "./DNSRecordType.ts";
import { ResourceRecord } from "./ResourceRecord.ts";
import { DNSRecordClass } from "./DNSRecordClass.ts";
/** A Resource Record for 'A' record types. */
export class AResourceRecord extends ResourceRecord {
ReadableAddress = "";
/** The IPv4 address (as a number). */
Address = 0;
/** Returns the IPv4 address as an unsigned 32 bit int. */
get Payload(): Uint8Array {
const result = new Uint8Array(4);
const view = new DataView(result.buffer);
view.setUint32(0, this.Address);
return result;
}
constructor(
name: string,
nameParts: string[],
recordType: DNSRecordType,
recordClass: DNSRecordClass,
ttl: number,
address: number,
ReadableAddress: string,
) {
super(name, nameParts, recordType, recordClass, ttl);
this.Address = address;
this.ReadableAddress = ReadableAddress;
}
}