PageSourceSearch

https://homyzone.pages.dev/assets/ip-DAUkJnEE.js

js homyzone.pages.dev collected 2026-10-03 05:14:41 UTC 8,804 bytes, 17 lines download raw bytes

1import{_ as c}from"./Blog.vue_vue_type_script_setup_true_lang-CILXmGNC.js";import{u as p,c as l,o as u,w as i,a as n,b as s}from"./app-CFzPwlWL.js";import"./Comments-DGuXOcGi.js";const P="node.js获取本机ip",h="2023-09-03T19:33:33.000Z",w="",g="zh",y="10min",v=[{property:"og:title",content:"node.js获取本机ip"},{name:"twitter:title",content:"node.js获取本机ip"}],_={__name:"ip",setup(r,{expose:e}){const t={title:"node.js获取本机ip",date:"2023-09-03T19:33:33.000Z",hero_image:"",lang:"zh",duration:"10min",meta:[{property:"og:title",content:"node.js获取本机ip"},{name:"twitter:title",content:"node.js获取本机ip"}]};return e({frontmatter:t}),p({title:"node.js获取本机ip",meta:[{property:"og:title",content:"node.js获取本机ip"},{name:"twitter:title",content:"node.js获取本机ip"}]}),(d,a)=>{const o=c;return u(),l(o,{frontmatter:t},{default:i(()=>a[0]||(a[0]=[n("div",{class:"prose"},[n("p",null,[s("在 Node.js 中使用 "),n("code",null,"os.networkInterfaces()"),s(" 方法可以获取到当前操作系统上的网络接口信息,包括每个接口的 IP 地址、子网掩码、网关等。")]),n("p",null,[n("code",null,"os.networkInterfaces()"),s(" 返回一个对象,其中每个属性都代表一个网络接口,属性的值是一个数组,包含了该接口的多个 IP 地址和相关信息。一个网络接口可以有多个 IP 地址的情况,例如一个接口同时具有 IPv4 和 IPv6 地址。")]),n("p",null,"在某些情况下,一个网络接口可能会有多个 IP 地址,例如:"),n("p",null,"多个网络地址:一个网络接口可能配置了多个 IP 地址,每个 IP 地址代表该接口的一个网络地址。这在多网卡或多个网络接口的情况下比较常见。"),n("p",null,"IPv4 和 IPv6 地址:一个网络接口可能同时配置了 IPv4 和 IPv6 地址,以支持不同的网络协议版本。"),n("p",null,[s("因此,在调用 "),n("code",null,"os.networkInterfaces()"),s(" 方法时,你可能会看到多个 IP 地址。这些 IP 地址对应于不同的网络接口或网络地址类型。")]),n("p",null,[s("需要注意的是,"),n("code",null,"os.networkInterfaces()"),s(" 方法只提供了当前操作系统上网络接口的信息,而不涉及网络连接的具体细节或其他远程主机的 IP 地址。如果你需要获取本地网络中其他主机的 IP 地址,需要使用其他技术或工具,如网络扫描工具或通过网络连接信息来获取。")]),n("h1",{id:"网络接口介绍",tabindex:"-1"},[s("网络接口介绍 "),n("a",{class:"header-anchor",href:"#网络接口介绍","aria-hidden":"true"},"#")]),n("h2",{id:"utun3",tabindex:"-1"},[s("utun3 "),n("a",{class:"header-anchor",href:"#utun3","aria-hidden":"true"},"#")]),n("p",null,[n("code",null,"utun3"),s(" 是 macOS 上的一种网络接口,它是一种虚拟网络接口类型。utun(Universal Tun/Tap)接口是为了支持 VPN(Virtual Private Network)等虚拟网络连接而创建的。")]),n("p",null,[n("code",null,"utun3"),s(" 表示第三个 utun 接口,它的确切含义和用途取决于你的系统配置和当前的网络连接状态。一般来说,utun 接口的命名方式是按顺序递增的,例如 utun0、utun1、utun2、utun3 等。")]),n("h2",{id:"en0",tabindex:"-1"},[s("en0 "),n("a",{class:"header-anchor",href:"#en0","aria-hidden":"true"},"#")]),n("p",null,"在 macOS 上,en0 是指网络接口的名称,通常对应于本地计算机的物理网卡(即以太网卡)。在某些情况下,en0 可能会有多个 IP 地址。"),n("p",null,"有两个 IP 地址与 en0 相关的常见情况有:"),n("ul",null,[n("li",null,[n("p",null,"IPv4 和 IPv6 地址:en0 可以同时配置 IPv4 和 IPv6 地址,以支持不同的网络协议版本。IPv4 是传统的因特网协议版本,而 IPv6 是下一代因特网协议版本。因此,en0 可以分别有一个 IPv4 地址和一个 IPv6 地址。")]),n("li",null,[n("p",null,"多个网络地址:en0 可能会配置多个 IP 地址,每个 IP 地址代表了一个网络地址。这在多网卡或多个网络接口的情况下比较常见。例如,在某些网络配置中,en0 可能会连接到本地局域网(LAN)和外部广域网(WAN)两个不同的网络,并分别获得一个 IP 地址。")])]),n("h1",{id:"代码示例",tabindex:"-1"}
1,[s("代码示例 "),n("a",{class:"header-anchor",href:"#代码示例","aria-hidden":"true"},"#")]),n("p",null,"node.js 获取本机 ip"),n("div",{class:"code-block-with-copy"},[n("pre",{class:"language-js"},[n("code",{class:"language-js"},[n("span",{class:"token keyword"},"const"),s(" os "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token function"},"require"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'node:os'"),n("span",{class:"token punctuation"},")"),s(`
2`),n("span",{class:"token keyword"},"const"),s(" nets "),n("span",{class:"token operator"},"="),s(" os"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"networkInterfaces"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(`
3`),n("span",{class:"token keyword"},"const"),s(" results "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"{"),n("span",{class:"token punctuation"},"}"),s(`
4`),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"const"),s(" name "),n("span",{class:"token keyword"},"of"),s(" Object"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"keys"),n("span",{class:"token punctuation"},"("),s("nets"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(`
5  `),n("span",{class:"token keyword"},"for"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token keyword"},"const"),s(" net "),n("span",{class:"token keyword"},"of"),s(" nets"),n("span",{class:"token punctuation"},"["),s("name"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(`
6    `),n("span",{class:"token keyword"},"const"),s(" familyV4Value "),n("span",{class:"token operator"},"="),s(),n("span",{class:"token keyword"},"typeof"),s(" net"),n("span",{class:"token punctuation"},"."),s("family "),n("span",{class:"token operator"},"==="),s(),n("span",{class:"token string"},"'string'"),s(),n("span",{class:"token operator"},"?"),s(),n("span",{class:"token string"},"'IPv4'"),s(),n("span",{class:"token operator"},":"),s(),n("span",{class:"token number"},"4"),s(`
7    `),n("span",{class:"token keyword"},"if"),s(),n("span",{class:"token punctuation"},"("),s("net"),n("span",{class:"token punctuation"},"."),s("family "),n("span",{class:"token operator"},"==="),s(" familyV4Value "),n("span",{class:"token operator"},"&&"),s(),n("span",{class:"token operator"},"!"),s("net"),n("span",{class:"token punctuation"},"."),s("internal"),n("span",{class:"token punctuation"},")"),s(),n("span",{class:"token punctuation"},"{"),s(`
8      `),n("span",{class:"token keyword"},"if"),s(),n("span",{class:"token punctuation"},"("),n("span",{class:"token operator"},"!"),s("results"),n("span",{class:"token punctuation"},"["),s("name"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},")"),s(`
9        results`),n("span",{class:"token punctuation"},"["),s("name"),n("span",{class:"token punctuation"},"]"),s(),n("span",{class:"token operator"},"="),s(),n("span",{class:"token punctuation"},"["),n("span",{class:"token punctuation"},"]"),s(`
10
11      results`),n("span",{class:"token punctuation"},"["),s("name"),n("span",{class:"token punctuation"},"]"),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"push"),n("span",{class:"token punctuation"},"("),s("net"),n("span",{class:"token punctuation"},"."),s("address"),n("span",{class:"token punctuation"},")"),s(`
12    `),n("span",{class:"token punctuation"},"}"),s(`
13  `),n("span",{class:"token punctuation"},"}"),s(`
14`),n("span",{class:"token punctuation"},"}"),s(`
15console`),n("span",{class:"token punctuation"},"."),n("span",{class:"token function"},"log"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},"'results'"),n("span",{class:"token punctuation"},","),s(" results"),n("span",{class:"token punctuation"},")"),s(`
16`)])])]),n("div",{class:"code-block-with-copy"},[n("pre",{class:"language-bash"},[n("code",{class:"language-bash"},[s("ipconfig getifaddr en0 "),n("span",{class:"token comment"},"# en0 可以替换为其他端口"),s(`
17`)])])])],-1)])),_:1,__:[0]})}}};export{h as date,_ as default,y as duration,w as hero_image,g as lang,v as meta,P as title};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.