42 lines
		
	
	
		
			636 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			636 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| var os = require('os');
 | |
| 
 | |
| var type = {
 | |
| 	v4: {
 | |
| 		def: '127.0.0.1',
 | |
| 		family: 'IPv4'
 | |
| 	},
 | |
| 	v6: {
 | |
| 		def: '::1',
 | |
| 		family: 'IPv6'
 | |
| 	}
 | |
| };
 | |
| 
 | |
| function internalIp(version) {
 | |
| 	var options = type[version];
 | |
| 	var ret = options.def;
 | |
| 	var interfaces = os.networkInterfaces();
 | |
| 
 | |
| 	Object.keys(interfaces).forEach(function (el) {
 | |
| 		interfaces[el].forEach(function (el2) {
 | |
| 			if (!el2.internal && el2.family === options.family) {
 | |
| 				ret = el2.address;
 | |
| 			}
 | |
| 		});
 | |
| 	});
 | |
| 
 | |
| 	return ret;
 | |
| }
 | |
| 
 | |
| function v4() {
 | |
| 	return internalIp('v4');
 | |
| }
 | |
| 
 | |
| function v6() {
 | |
| 	return internalIp('v6');
 | |
| }
 | |
| 
 | |
| module.exports = v4;
 | |
| module.exports.v4 = v4;
 | |
| module.exports.v6 = v6;
 |