广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS获取本机IP地址的2种方法
  • 275
分享到

JS获取本机IP地址的2种方法

2024-04-02 19:04:59 275人浏览 八月长安
摘要

目录1.获取本机IP地址方法1:2.获取本机IP地址方法2解决方案:总结1.获取本机IP地址方法1: if(typeof window != 'undefined'){     va

1.获取本机IP地址方法1:

if(typeof window != 'undefined'){
    var RtcpeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.WEBkitRTCPeerConnection;
    if (RTCPeerConnection) (()=>{
        var rtc = new RTCPeerConnection()
        rtc.createDataChannel(''); //创建一个可以发送任意数据的数据通道
        rtc.createOffer( offerDesc => { //创建并存储一个sdp数据
        rtc.setLocalDescription(offerDesc)
    }, e => { console.log(e)})

    rtc.onicecandidate =(evt) => { //监听candidate事件
        if (evt.candidate) {
            console.log('evt:',evt.candidate)
            let ip_rule = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/
            var ip_addr = ip_rule.exec(evt.candidate.candidate)[1]
            console.log('ip_addr:',ip_addr)   //打印获取的IP地址
        }}
    })()
    else{console.log("没有找到")}
}

2.获取本机IP地址方法2

   //获取用户本地ip的方法
const getUserIP= (onNewIP)=> {
  let MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
  let pc = new MyPeerConnection({
    iceServers: []
  });
  let noop = () => {
  };
  let localIPs = {};
  let ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g;
  let iterateIP = (ip) => {
    if (!localIPs[ip]) onNewIP(ip);
    localIPs[ip] = true;
  };
  pc.createDataChannel('');
  pc.createOffer().then((sdp) => {
    sdp.sdp.split('\n').forEach(function (line) {
      if (line.indexOf('candidate') < 0) return;
      line.match(ipRegex).forEach(iterateIP);
    });
    pc.setLocalDescription(sdp, noop, noop);
  }).catch((reason) => {
  });
  pc.onicecandidate = (ice) => {
    if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
    ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
  };
}
 
  getUserIP((ip) => {
   state.ip=ip
      console.log(ip)
      console.log(state.ip)
  });

如果电脑没获取到,基本上是因为浏览器限制了,解除方法如下:

解决方案:

  • 火狐(FireFox) 删除隐藏IP

浏览器输入 about:config

搜索配置 media.peerconnection.enabled 改为false ( 刷新程序,IP正常显示 )

  • 谷歌(Chrome) 删除隐藏IP

浏览器输入:chrome://flags/#enable-webrtc-hide-local-ips-with-mdns

把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )

  • eage浏览器删除隐藏ip

浏览器输入: edge://flags/#enable-webrtc-hide-local-ips-with-mdns

把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )

总结

到此这篇关于js获取本机IP地址的2种方法的文章就介绍到这了,更多相关JS获取本机IP地址内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JS获取本机IP地址的2种方法

本文链接: https://www.lsjlt.com/news/166751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS获取本机IP地址的2种方法
    目录1.获取本机IP地址方法1:2.获取本机IP地址方法2解决方案:总结1.获取本机IP地址方法1: if(typeof window != 'undefined'){     va...
    99+
    2022-11-13
  • 分享Python获取本机IP地址的几种方法
    目录1、使用专用网站2、使用自带socket库3、使用第三方netifaces库1、使用专用网站 获取的是公网IP 网址:http://myip.ipip.net 代码: impor...
    99+
    2022-11-13
  • Java获取本机IP地址的三种方法总结
    目录1 获取局域网IP地址2 获取全部 IPV4/IPV6 IP地址3 获取全部存放本机IP地址知识点补充1 获取局域网IP地址 InetAddress.getLocalHost()...
    99+
    2022-11-13
  • Android手机获取IP地址的两种方法
    1.使用WIFI 首先设置用户权限 代码如下: <uses-permission android:name="android.permission.ACCESS_WIF...
    99+
    2022-06-06
    获取ip地址 ip 方法 Android
  • python 获取本机IP地址
    方法一: 通常使用socket.gethostbyname()方法即可获取本机IP地址,但有时候获取不到(比如没有正确设置主机名称),示例代码如下: import socket # 获取本机计算机名称 hostname = s...
    99+
    2023-01-31
    本机 地址 python
  • Linux Shell脚本中获取本机ip地址方法
    方法一:ifconfig -a ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:" 命令解析 ...
    99+
    2022-06-04
    Shell获取本机ip Shell 本机ip
  • Python获取本机IP地址的方法有哪些
    这篇文章主要介绍“Python获取本机IP地址的方法有哪些”,在日常操作中,相信很多人在Python获取本机IP地址的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python获取本机IP地址的方法...
    99+
    2023-06-29
  • Shell脚本中获取本机ip地址的3个方法
    方法一: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:" or /sb...
    99+
    2022-06-04
    本机 脚本 地址
  • android 获取本机的IP地址和mac物理地址的实现方法
    获取本机IP地址 public String getLocalIpAddress() { WifiManager wifiManager = (WifiManager) ge...
    99+
    2022-06-06
    ip 方法 mac Android
  • python获取本机IP、mac地址、计
    在python中获取ip地址和在php中有很大不同,在php中往往比较简单。那再python中怎么做呢?我们先来看一下python 获得本机MAC地址:import... 在python中获取ip地址和在php中有很大不同,在php...
    99+
    2023-01-31
    本机 地址 python
  • Python获取本机所有IP地址
    import socket # 查看当前主机名 print('当前主机名称为 : ' + socket.gethostname()) # 根据主机名称获取当前IP print('当前主机的IP为: ' + socket.get...
    99+
    2023-01-31
    本机 地址 Python
  • vue如何获取本机ip地址
    Vue.js 是一款流行的前端开发框架,它可以帮助开发者构建动态且高效的用户界面。在许多 Vue.js 项目中,我们需要获取本地 IP 地址来识别设备以及进行网络调试和测试。接下来,我们将介绍如何在 Vue.js 中获取本地 IP 地址。通...
    99+
    2023-05-24
  • 获取对方IP地址和获取目标MAC地址的方法
    获取对方IP地址的方法: 1,直接知道对方的IP地址 2,通过域名获取对方的IP地址 (本质上还是直接通过IP进行访问,因为通过域名访问时,需要在DNS服务器中查找域名对应的IP地址,知道对方IP地址...
    99+
    2023-09-04
    网络
  • Node.js获取本机Mac地址的两种方案
    目录方案一:使用getmac库方案二:使用os库总结方案一:使用getmac库 首先我们要先加载一个包用于获取mac地址 npm install getmac 安装完毕会在node_...
    99+
    2022-11-13
  • C# 获取本机IP地址(IPv4和IPv6)
    目录前言:操作步骤一,创建文件二,窗体设计三,代码设计四 效果展示总结:前言: 在我们使用C# WinForm中,我们有时候是需要或者自己本机的IP地址进行处理,今天我们学习一下如何...
    99+
    2022-11-13
    C# 获取本机IP地址 C# 获取IP地址
  • Shell脚本中怎么获取本机ip地址
    这期内容当中小编将会给大家带来有关Shell脚本中怎么获取本机ip地址,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。方法一:代码如下:/sbin/ifconfig -a|grep inet|grep -v...
    99+
    2023-06-09
  • Android 获取IP地址的实现方法
    Android 获取IP地址 最近做项目,有一个需求是Android设备获取当前IP的功能,经过一番查询资料解决了,记录下实现方法。 1.使用WIFI 首先设置用户权限 &l...
    99+
    2022-06-06
    获取ip地址 ip 方法 Android
  • Java 获取本机IP地址的实例代码
    目录前言一、规则二、获取1.使用2.工具类前言 在Java中如何准确的获取到本机IP地址呢?网上大部分的做法是InetAddress.getLocalHost().getHostAd...
    99+
    2022-11-13
  • Linux Shell脚本中如何获取本机ip地址
    小编给大家分享一下Linux Shell脚本中如何获取本机ip地址,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是Linux系统Linux是一种免费使用和自由...
    99+
    2023-06-09
  • Java获取本机IP地址的代码怎么写
    本文小编为大家详细介绍“Java获取本机IP地址的代码怎么写”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java获取本机IP地址的代码怎么写”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言在Java中如何准...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作