{"id":223,"date":"2020-01-17T10:22:24","date_gmt":"2020-01-17T02:22:24","guid":{"rendered":"http:\/\/blog.adeying.com\/?p=223"},"modified":"2020-01-17T10:22:43","modified_gmt":"2020-01-17T02:22:43","slug":"nodejs%e8%8e%b7%e5%8f%96%e6%9c%ac%e6%9c%baip%e5%9c%b0%e5%9d%80","status":"publish","type":"post","link":"https:\/\/adeqing.com\/index.php\/2020\/01\/17\/develop\/nodejs\/223\/","title":{"rendered":"nodejs\u83b7\u53d6\u672c\u673aIP\u5730\u5740"},"content":{"rendered":"<pre class=\"line-numbers language-js\"><code class=\"js language-js\"><span class=\"token keyword\">function<\/span> <span class=\"token function\">getIPAddress<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<\/span>\r\n  <span class=\"token keyword\">var<\/span> interfaces <span class=\"token operator\">=<\/span> <span class=\"token function\">require<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'os'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">networkInterfaces<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">var<\/span> devName <span class=\"token keyword\">in<\/span> interfaces<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<\/span>\r\n      <span class=\"token keyword\">var<\/span> iface <span class=\"token operator\">=<\/span> interfaces<span class=\"token punctuation\">[<\/span>devName<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\r\n      <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">var<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">&lt;<\/span>iface<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<\/span>\r\n          <span class=\"token keyword\">var<\/span> alias <span class=\"token operator\">=<\/span> iface<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\r\n          <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>alias<span class=\"token punctuation\">.<\/span>family <span class=\"token operator\">===<\/span> <span class=\"token string\">'IPv4'<\/span> <span class=\"token operator\">&amp;&amp;<\/span> alias<span class=\"token punctuation\">.<\/span>address <span class=\"token operator\">!==<\/span> <span class=\"token string\">'127.0.0.1'<\/span> <span class=\"token operator\">&amp;&amp;<\/span> <span class=\"token operator\">!<\/span>alias<span class=\"token punctuation\">.<\/span>internal<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<\/span>\r\n              <span class=\"token keyword\">return<\/span> alias<span class=\"token punctuation\">.<\/span>address<span class=\"token punctuation\">;<\/span>\r\n          <span class=\"token punctuation\">}<\/span>\r\n      <span class=\"token punctuation\">}<\/span>\r\n  <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<span class=\"token keyword\">const<\/span> <span class=\"token constant\">LOCAL_IP<\/span> <span class=\"token operator\">=<\/span> <span class=\"token function\">getIPAddress<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/code><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>function getIPAddress(){ var interfaces = require(&#8216;os&#8217;) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/posts\/223"}],"collection":[{"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/comments?post=223"}],"version-history":[{"count":1,"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/posts\/223\/revisions"}],"predecessor-version":[{"id":224,"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/posts\/223\/revisions\/224"}],"wp:attachment":[{"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/media?parent=223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/categories?post=223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adeqing.com\/index.php\/wp-json\/wp\/v2\/tags?post=223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}