前端获取内网IP_自动获取ip地址

前端获取内网IP_自动获取ip地址前端获取内网IP:定义函数://获取内网ipgetIPs(){let_this=this;varRTCPeerConnection=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

个人blog,欢迎关注加收藏

前端获取内网IP:

  1. 定义函数:
//获取内网ip
        getIPs(){
            let _this = this;
            var RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
            if (RTCPeerConnection) (function () {
                var rtc = new RTCPeerConnection({iceServers:[]});
                if (1 || window.mozRTCPeerConnection) {     
                    rtc.createDataChannel('', {reliable:false});
                };
                
                rtc.onicecandidate = function (evt) {
                    if (evt.candidate) grepSDP("a="+evt.candidate.candidate);
                };
                rtc.createOffer(function (offerDesc) {
                    grepSDP(offerDesc.sdp);
                    rtc.setLocalDescription(offerDesc);
                }, function (e) { console.warn("offer failed", e); });
                
                
                var addrs = Object.create(null);
                addrs["0.0.0.0"] = false;
                function updateDisplay(newAddr) {
                    if (newAddr in addrs) return;
                    else addrs[newAddr] = true;
                    var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; });
                    for(var i = 0; i < displayAddrs.length; i++){
                        if(displayAddrs[i].length > 16){
                            displayAddrs.splice(i, 1);
                            i--;
                        }
                    }
                    console.log('内网ip',displayAddrs[0]);      //打印出内网ip
                    _this.user.ip_in = displayAddrs[0];//获取内网ip
                }
                
                function grepSDP(sdp) {
                    var hosts = [];
                    sdp.split('\r\n').forEach(function (line, index, arr) { 
                    if (~line.indexOf("a=candidate")) {    
                            var parts = line.split(' '),       
                                addr = parts[4],
                                type = parts[7];
                            if (type === 'host') updateDisplay(addr);
                        } else if (~line.indexOf("c=")) {       
                            var parts = line.split(' '),
                                addr = parts[2];
                            updateDisplay(addr);
                        }
                    });
                }
            })();
            else{
                console.log("请使用主流浏览器:chrome,firefox,opera,safari");
            }
        },
  1. 调用函数:
  mounted(){
        let _this = this;
      _this.getIPs();//获取内网ip
  }

前端获取外网IP:

//index.html
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
//vue组件的js:
<script>
document.write(returnCitySN["cip"]);
let ip_out = returnCitySN["cip"];//获取外网IP

login(){
    let _this = this;
    _this.user.ip_out = ip_out;
}
</script>

vue项目中:
cdn方式引入的话
首先有一点要求, script 必须在 index.html 中的

上面

在 main.js 中 通过 window 获取对象

const Foo = window.foo
Vue.prototype.Foo = Foo
vue 文件里:

this.Foo(params)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194017.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python缩进规则「建议收藏」

    传统的c、c++、Java都是使用花括号{}来决定作用域的范围,并且会在编程过程中自动对缩进进行管理,但是在python中,则是使用缩进来决定代码的范围,有时候缩进需要根据代码来手动调控,此时如果完全依赖python自动缩进,可能会出现问题。例如://计算数组和,正确格式defsum_list(alist):sum_temp=0foriinalist:sum_temp+=ireturnsum_temp#此处需要手动调节缩进print(s

    2022年4月8日
  • 淘宝抢购Python脚本

    淘宝抢购Python脚本想买mate40,但总是抢不到,所以想试着能不能写个脚本代码。第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。第二步:写好Python脚本,在抢购之前运行,并设置好抢购时间。Python脚本实现安装Python。我安装的是anaconda安装webdriver扩展。它是Selenium模块的一部分。Selenium是一个用于Web应用程序测试的工具,用于测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。Selen

    2022年4月29日
  • 试用员工转正申请表怎么填_试用期转正申请500字

    试用员工转正申请表怎么填_试用期转正申请500字附件1:XXXX试用员工转正申请表XXXX试用员工转正申请表姓名张三部门研发部职务Java工程师学历大专毕业院校及时间XX大学2012.9-2015.7专业计算机信息管理试

    2022年8月3日
  • 一分钟博弈论_预算没人带自己能不能学会

    一分钟博弈论_预算没人带自己能不能学会博弈论博弈论入门什么是博弈论博弈论是指双方或多方在竞争、合作、冲突等情况下,充分了解各方信息,并以此选择一种能为本方争取最大利益的最优决策的理论。博弈论四个要素:最少有两个参与者利益策略信息博弈论的…

    2022年10月16日
  • 项目复盘/总结模板

    项目复盘/总结模板复盘会议的安排、步骤及意义什么是复盘?为何要复盘?WHAT?复盘,是行动后的深刻反思和经验总结,是一个不断学习、总结、反思、提炼和持续提高的过程。复盘是企业文化、是行动学习、是提升组织智慧的重

    2022年8月3日
  • Navicat15激活码一直生成不了(注册激活)

    (Navicat15激活码一直生成不了)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlHQE565NV3W-eyJsaWNlbnNlSWQi…

    2022年3月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号