2012-05-25 16 views
55

मैं करने के लिएमैं स्थानीय आईपी पता Node.js में कैसे प्राप्त कर सकता हूं?

127.0.0.1

बल्कि एक है कि अन्य कंप्यूटरों मशीन जैसे उपयोग करने के लिए प्रयोग करेंगे बात नहीं कर रहा हूँ

192.168.1.6

+1

क्या आपने Google को खोजा था? http://forum.webfaction.com/viewtopic.php?id=4500 – Nick

+0

http://stackoverflow.com/a/3654601/1202784 – lfergon

+0

संभावित डुप्लिकेट [नोड.जेएस में स्थानीय आईपी पता प्राप्त करें] (http: // stackoverflow.com/questions/3653065/get-local-ip-address-in-node-js) – alessioalex

उत्तर

95

http://nodejs.org/api/os.html#os_os_networkinterfaces

var os = require('os'); 

var interfaces = os.networkInterfaces(); 
var addresses = []; 
for (var k in interfaces) { 
    for (var k2 in interfaces[k]) { 
     var address = interfaces[k][k2]; 
     if (address.family === 'IPv4' && !address.internal) { 
      addresses.push(address.address); 
     } 
    } 
} 

console.log(addresses); 
+6

इंटरवेब्ज़ की खोज करने वालों के लिए, इसे अधिकतर नेटवर्क आईपी कहा जाता है। – jonathanberi

+2

मैंने इस तकनीक को लिया और इसे इंटरफ़ेस-पते नामक मॉड्यूल में लपेट लिया। इसे यहां देखें https://github.com/nisaacson/interface-addresses – Noah

+1

बस समझने के लिए, एक से अधिक आईपी पते क्यों हैं? जब मैं इसे गल्प के साथ चलाता हूं तो मुझे मिलता है: 'en0',' vnic0', 'vnic01'। 'en0' एक ब्राउज़रसिंक मुझे प्रदर्शित करता है। –

82

https://github.com/indutny/node-ip

var ip = require("ip"); 
console.dir (ip.address()); 
+3

मेरी इच्छा है कि मैं इसे फिर से उठा सकता हूं ... – theonlygusti

+1

यह सबसे छोटा समाधान है –

+8

वास्तव में यदि आपको केवल आईपी की आवश्यकता है, तो यह समाधान स्वीकृत से ~ 380 लाइन लंबा है, क्योंकि आपको 'नोड-आईपी' – wacko

8
$ npm install --save quick-local-ip 

द्वारा follwed
var myip = require('quick-local-ip'); 

//getting ip4 network address of local system 
myip.getLocalIP4(); 

//getting ip6 network address of local system 
myip.getLocalIP6(); 
5

मेरे संस्करण है जो एक कॉम्पैक्ट और एकल फाइल स्क्रिप्ट के लिए की जरूरत थी, दूसरों के लिए उपयोगी होने की उम्मीद है:

var ifs = require('os').networkInterfaces(); 
var result = Object.keys(ifs) 
    .map(x => [x, ifs[x].filter(x => x.family === 'IPv4')[0]]) 
    .filter(x => x[1]) 
    .map(x => x[1].address); 

या मूल सवाल का जवाब देने:

var ifs = require('os').networkInterfaces(); 
var result = Object.keys(ifs) 
    .map(x => ifs[x].filter(x => x.family === 'IPv4' && !x.internal)[0]) 
    .filter(x => x)[0].address; 
+0

उन loooooong 1-लाइनर मुझे मार रहे हैं। इसे बहु-पंक्ति और इंडेंट पसंद करेंगे। सेक्सी समाधान था। –

+1

कोई समस्या नहीं है। किया हुआ :) –

संबंधित मुद्दे