27 lines
		
	
	
		
			587 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			587 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| (function (exports) {
 | |
| 'use strict';
 | |
| 
 | |
| // An 'A' record is a 32-bit value representing the IP address
 | |
| 
 | |
| exports.DNS_PACKER_TYPE_A = function (ab, dv, total, record) {
 | |
|   if (!record.address) {
 | |
|     throw new Error("no address on A record");
 | |
|   }
 | |
| 
 | |
|   // RDLENGTH
 | |
|   var IP_LEN = 4;
 | |
|   dv.setUint16(total, IP_LEN, false);
 | |
|   total += 2;
 | |
| 
 | |
|   // RDATA
 | |
|   // i.e. 127.0.0.1 => 0x7F, 0x00, 0x00, 0x01
 | |
|   record.address.split('.').forEach(function (octet) {
 | |
|     dv.setUint8(total, parseInt(octet, 10), false);
 | |
|     total += 1;
 | |
|   });
 | |
| 
 | |
|   return total;
 | |
| };
 | |
| 
 | |
| }('undefined' !== typeof window ? window : exports));
 |