File tree Expand file tree Collapse file tree 1 file changed +25
-3
lines changed Expand file tree Collapse file tree 1 file changed +25
-3
lines changed Original file line number Diff line number Diff line change @@ -70,6 +70,24 @@ var getIpAddresses = (function() {
70
70
71
71
var os = require ( 'os' ) ;
72
72
73
+ var isIpv6WeCareAbout = ( function ( ) {
74
+ var ignoredTopSegments = {
75
+ "fe80" : true ,
76
+ "ff00" : true ,
77
+ "fc00" : true ,
78
+ "fec0" : true ,
79
+ } ;
80
+ return function ( address ) {
81
+ // honestly I don't really understand ipv6 and which address make no sense. It seems
82
+ // like the top few bits might stay but
83
+
84
+ // should probably check for 0 using ip6addr
85
+
86
+ var topSegment = address . substr ( 0 , 4 ) . toLowerCase ( ) ;
87
+ return ignoredTopSegments [ topSegment ] === undefined ;
88
+ }
89
+ } ( ) ) ;
90
+
73
91
return function ( ) {
74
92
var now = Date . now ( ) ;
75
93
if ( ! addresses || now - lastRead > cacheTime ) {
@@ -78,9 +96,13 @@ var getIpAddresses = (function() {
78
96
addresses = [ ] ;
79
97
for ( var k in interfaces ) {
80
98
for ( var k2 in interfaces [ k ] ) {
81
- var address = interfaces [ k ] [ k2 ] ;
82
- if ( address . family === 'IPv4' && ! address . internal ) {
83
- addresses . push ( address . address ) ;
99
+ var iface = interfaces [ k ] [ k2 ] ;
100
+ if ( ! iface . internal ) {
101
+ if ( iface . family === 'IPv4' ) {
102
+ addresses . push ( iface . address ) ;
103
+ } else if ( iface . family === 'IPv6' && isIpv6WeCareAbout ( iface . address ) ) {
104
+ addresses . push ( "[" + iface . address + "]" ) ;
105
+ }
84
106
}
85
107
}
86
108
}
You can’t perform that action at this time.
0 commit comments