首页
学习
活动
专区
圈层
工具
发布

js获取公网ip 局域网ip

JavaScript 获取公网 IP 和局域网 IP 的方法有所不同,下面分别介绍这两种 IP 的获取方式及其基础概念。

公网 IP

基础概念: 公网 IP 是指能在互联网上直接访问的 IP 地址。每个连接到互联网的设备通常都会有一个公网 IP,这个 IP 是全球唯一的。

获取方法: 可以通过调用第三方 API 来获取当前设备的公网 IP。

示例代码

代码语言:txt
复制
fetch('https://api.ipify.org?format=json')
  .then(response => response.json())
  .then(data => console.log('公网 IP:', data.ip))
  .catch(error => console.error('获取公网IP失败:', error));

优势

  • 简单快捷,只需几行代码即可实现。
  • 第三方服务通常稳定可靠。

应用场景

  • 用户登录时的地理位置验证。
  • 动态IP环境下,需要实时获取当前IP的场景。

局域网 IP

基础概念: 局域网 IP 是指在局域网内部使用的 IP 地址,通常是私有 IP 范围内的地址(如 192.168.x.x, 10.x.x.x 等)。

获取方法: 在浏览器环境中,JavaScript 无法直接获取局域网 IP,因为这涉及到网络安全问题。但可以通过 WebRTC 技术间接获取。

示例代码

代码语言:txt
复制
function getLocalIPs(callback){
    var ips = [];
    var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; // 兼容不同浏览器

    var pc = new RTCPeerConnection({iceServers:[]});
    pc.createDataChannel('');
    pc.onicecandidate = function(e){
        if (!e.candidate) {
            pc.close();
            callback(ips);
            return;
        }
        var ip = /^candidate:.+ (\S+) \d+ typ/.exec(e.candidate.candidate)[1];
        if (ips.indexOf(ip) == -1){
            ips.push(ip);
        }
    };
    pc.createOffer().then(function(sdp){
        pc.setLocalDescription(sdp);
    }).catch(function(e){
        console.error(e);
    });
}

getLocalIPs(function(ips){
    console.log('局域网 IP:', ips);
});

优势

  • 可以在不依赖服务器的情况下获取本地 IP。
  • 适用于需要本地网络通信的应用。

应用场景

  • P2P 应用中的本地地址发现。
  • 本地网络服务的配置和管理。

常见问题及解决方法

问题1:为什么获取公网 IP 失败?

  • 可能是因为第三方服务不可用或网络连接问题。
  • 解决方法:尝试更换其他可靠的 IP 查询服务。

问题2:为什么获取局域网 IP 不准确?

  • WebRTC 获取的 IP 可能包括 VPN 或代理服务器的 IP。
  • 解决方法:确保在无代理或 VPN 的环境下测试,或者使用更精确的网络检测方法。

希望以上信息能帮助你理解如何在 JavaScript 中获取公网 IP 和局域网 IP,以及相关的应用场景和可能遇到的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python通过代码获取本机局域网ip和公网ip

Python 获取本机局域网 IP 通过创建一个 UDP 套接字,并连接到公共的 DNS 服务器(此处是 Google 的 8.8.8.8 ),然后通过套接字的 getsockname ()方法获取本地...Python 获取本机公网 IP 使用 requests 库发送一个 GET 请求到 https://api.ipify.org ?...format = json 的 API 端点,这个 API 会返回包含公网 IP 地址的 JSON 响应。我们从响应数据中提取出 IP 地址并将其返回。这样你就可以获取到你的公网 IP 地址。...IP地址 public_ip = data['ip'] return public_ip # 调用函数获取公网IP地址 public_ip = get_public_ip() print...("本机公网IP地址是:", public_ip) 效果图: ❤️ ❤️ ❤️ 知识拓展:局域网和公网的差异 局域网( LAN )和公共互联网( Internet )是两个不同的网络概念,它们具有许多差异和特点

3.1K00
  • 公网IP、私网IP、动态IP、静态IP

    公网IP是在公网中使用的IP地址,私网IP是在局域网中使用的IP地址。...而私网IP处于局域网下,它想要访问互联网是需要先转换成公网IP的,这个公网IP就是局域网的网关IP。...对公网上的其他电脑来说,无论是路由器下的哪个设备访问它,它获取到的对方IP都是一样的,都是局域网的网关IP。至于是局域网内具体哪个设备访问它,它是无法知道的。...局域网由路由器产生,路由器即为网关,局域网IP是192.168.0.1。因为路由器既处于公网内,又处于私网内,所以路由器还有一个公网IP,假设为136.67.0.1。...但公网上的其他IP想要找到我们,是没法直接找到的,它最多只能找到局域网的网关一层,至于路由器下的多个设备,它是没办法区分的。这也就是为什么很多人都希望自己的IP是公网IP,而非私网IP。

    22K33

    公网IP和内网IP区别

    唯一性公网IP:全球唯一,不可重复。内网IP:不同局域网内可重复使用,如多个家庭网络均可使用192.168.1.1。3. 使用场景公网IP:用于互联网通信(如网站服务器、云服务)。...内网IP:局域网内部通信(如家庭设备、公司内部服务器)。4. 访问权限公网IP:可从互联网直接访问,需防火墙保护。内网IP:无法从外网直接访问,需通过NAT(网络地址转换)或端口映射实现外网通信。...获取方式公网IP:由ISP(如电信、联通)动态或静态分配,可能需额外付费。内网IP:由本地路由器或DHCP服务器自动分配,免费使用。6. 成本公网IP:因IPv4资源稀缺,静态公网IP通常收费较高。...内网IP:无额外成本,可无限复用。7. 安全性公网IP:暴露于互联网,易受攻击,需严格安全措施。内网IP:受局域网保护,外部无法直接访问,相对安全。8....局域网传输:办公室电脑(10.0.0.2)直接向同事电脑(10.0.0.3)发送文件,无需经过外网。总结公网IP是互联网的“门牌号”,内网IP是局域网的“房间号”。

    8.6K00

    公网IP和内网IP区别

    什么是公网IP(外网IP): 公网IP就是除了保留IP地址以外的IP地址,可以与Internet上的其他计算机随意互相访问。我们通常所说的IP地址,其实就是指的公网IP。...互联网上的每台计算机都有一个独立的IP地址,该IP地址唯一确定互联网上的一台计算机。这里的IP地址就是指的公网IP地址。...公网IP地址和内网IP地址也是同样,不同企业或学校的机器可能有相同的内网IP地址,但是他们的公网IP地址肯定不同。那么这些企业或学校的计算机是怎样IP地址共享的呢?...时,就可以通过NAT主机的NAT技术,将内网我IP地址修改为公网IP地址,如此一来,内网计算机就可以向Internet请求数据了。...在其他ISP那里,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。

    10.2K20

    公网IP和内网IP如何分辨?

    公网ip和内网ip之间如何分辨,公网ip和内网ip之间有什么区别?很多人都知道根据网络使用的范围不同又分为公有网络和私有网络。...公有网络就是指处于公有网络的电脑的IP是“互联网”中能够识别到的地址;而私有网络指公有网络的机器不能识别到的机器。本文主要给大家介绍公网ip和内网ip的相关知识。...1、公网ip和内网ip之间如何分辨? ②直观法 10开头的IP都是内网IP。即10.0.0.0 到 10.255.255.255是内网IP。以下IP段的地址都是内网IP地址。...如果花费很少的钱给你升级为100M光纤上网,99.99%是内网IP,那0.01%是我还没有发现过案例。 ③询问法 直接问自己的网络提供商,问他分配的IP是不是公网IP,跨网能不能访问到这个IP。...2、公网IP和内网IP有什么区别? ①访问权限不同 访问互联网需要公网IP作为身份的标识,而私网IP则用于局域网,在公网上是不能使用私网IP地址来实现互联网访问的。

    16.7K20

    本机ip地址查询方法详解:自己当前ip是多少,哪里看,怎么修改,如何获取本地公网ip地址,内网ip端口在局域网外访问

    二、本机Ip地址提供局域网内其他电脑访问这里需要查看用到自己本机的内网IP地址。...三、本机IP地址提供局域网外设备访问1、通过公网IP路由设置让外网访问当自己有公网IP,经过路由带宽且有路由权限的,可以通过设置路由转发,让外部网络访问进来。...五、如何获取本地公网ip地址电脑网络上网时,经过路由设置,有没有公网IP就看路由WAN地址。...如果没有公网IP的,则需要向本地网络商申请获取,通常公司网络带宽较容易获取公网IP,或为公网IP单独支付费用获取方式。...如果本地获取申请不到公网IP的,又想本地搭建服务器提供互联网公网上访问到,则需要借助nat123端口映射工具或类似内网穿透技术软件实现,可以快速简单直接通过客户端软件方式,自定义设置好对应内外网地址绑定

    7.8K11

    什么是公网IP和内网IP?

    1、引言 搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么?又有什么关系呢?...另外,内行都知道,提到外网IP和内网IP就不得不提NAT路由转换这种东西,那这双是什么鬼?本文就来简单讲讲这些到底都是怎么回事。 1、每台电脑都必须要一个公网IP吗? 答案:不是。...我们也知道,由于百度和电脑A不在一个局域网内,所以A要访问百度,那么必须得经过网关。而网关的这个IP地址,是真实存在的,是可以访问百度的。...而像A、B、C这样的IP地址我们也称之为内网IP,即内网IP;而像网关,百度这样的IP我们称之为外网IP(即互联网公网IP)。...所以,一个典型的内网访问公网的原理,就像下图这样就可以实现了: 现在知道外网IP和内网IP了吧?

    13.2K30

    获取公网IP的有效方法详细步骤,及无公网ip如何实现内网映射外网访问

    一、理解公网IP公网IP地址是由互联网服务提供商(ISP)分配的,通常用于连接到互联网的设备。与私有IP地址不同,私有IP地址只能在局域网内使用,而公网IP地址则可以被全球访问。...了解公网IP的基本概念是获取公网IP的第一步。...本地网络是经过网络商中转后的私有局域网。...三、如何获取公网IP如果你查看本地使用的是内网IP,需要获取使用公网IP,则可以向本地网络商申请使用公网IP获取使用。...无公网IP内网映射给公网访问操作步骤:1,前往官网下载nat123客户端并安装;可以安装在服务器本地,或所在局域网另台主机上都行;2,登录nat123客户端,默认显示映射列表空的;3,点击映射列表下的“

    6.7K20

    不通过浏览器获取公网 IP

    一.不通过浏览器获取公网 IP 有的时候我们的计算机处于受限状态,不能使用浏览器或者 HTTP 协议。 也就不能使用类似: curl ifconfig.io 之类的命令来获取公网 IP。...但其实可以不通过浏览器,而是通过 DNS 来获取公网 IP,使用如下命令: dig @ns1.google.com TXT o-o.myaddr.l.google.com +short # 或者:nslookup...这些命令会返回公网 IP 的原理是: Google 等公司会编写程序,监听在它们类似 o-o.myaddr.l.google.com 的地址上。...二.nginx设置反向代理,如何获取真实客户端ip upstream这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡。...Host包含客户端真实的域名和端口号; X-Real-IP表示客户端真实的IP; X-Forwarded-For这个Header和X-Real-IP类似,但它在多层代理时会包含真实客户端及中间每个代理服务器的

    1.4K20

    内网IP和公网IP的区别

    IP地址对于经常上网的人应该都不陌生,ip地址又可以分成内网ip地址和公网ip地址,今天就来简单介绍下这两者的区别。...通常我们所说的内网也就是局域网,是内网的计算机以网络地址转换协议,通过一个公共的网关访问Internet。而内网的计算机也可以向Internet上的其他计算机发送连接请求。...公网ip是运营商所分配的ip地址,是独一无二的,可以与Internet上的其他计算机随意互相访问。可以访问因特网上的所有网络资源。...运营商所分配公网ip地址(某某市某某区某某酒店)也就是所住的酒店,而201房间(内网ip)则是酒店管家(路由器)所分配的。...所以一个酒店可以有很多的房间(内网ip)但是当外面的朋友问你住哪里,你肯定不会说你住在201房间(内网ip)而会说你住在某某市某某区某某酒店(公网ip)。这就是内网ip和公网ip的本质区别。

    9.4K20
    领券