前端获取内网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)

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Matlab求分段函数的积分[通俗易懂]

    Matlab求分段函数的积分[通俗易懂](一)前言本文介绍一个使用Matlab进行求分段函数积分值的方法。首先介绍如何使用int()对连续函数进行积分的求解,然后介绍一个对分段函数进行求积分的例子。(二)使用Matlab求定积分Matlab中求积分的函数为int(),调用形式为int(func,’x’,a,b),其中func为被积函数,x为积分变量,[a,b]为被积区间。如int(x^2,’x’,1,2…

  • 过程控制系统与仪表pdf_计算机控制技术课程设计之炉温

    过程控制系统与仪表pdf_计算机控制技术课程设计之炉温目录一课程设计内容任务,,,,,,,,,,,,,,,,,,,,,,3二对课设任务的解读,,,,,,,,,,,,,,,,,,,,,,3三系统结构模型框图,,,,,,,,,,,,,,,,,,,,,,3四各部分程序流程图,,,,,,,,,,,,,,,,,,,,,,4五数字控制器设计,,,,,,,,,,,,,,,,,,,,,,5六系统仿真,,,,,,,,,,,,,,,,,,,…

  • c语言注释快捷键_c语言多行注释快捷键

    c语言注释快捷键_c语言多行注释快捷键//注释多行快捷键Ctrl+kctrl+l//解注释多行快捷键Ctrl+kctrl+u

  • java清除浏览器缓存[通俗易懂]

    java清除浏览器缓存[通俗易懂]方法一:<%response.setHeader(“Pragma”,”No-cache”);response.addHeader(“Cache-Control”,”must-revalidate”);response.addHeader(“Cache-Control”,”no-cache”);response.addHeader(“Cache-Control”,”no-store”);response.setDateHeader(“Expires”,0)…

  • Makefile总结

    Makefile总结Makefile是一个规定了怎么去编译和链接程序的脚本文件,在执行make命令时会执行该文件,window环境下的IDE,如visualstudio已经集成了该功能,不需要关心程序的编译规则,在linux下做C/C++开发时经常用到,会写Makefile是程序员的必备技能。说到这里首先要知道一个工具make。make是一个解释Makefile中指令的命令工具,常见的IDE都集成了这个工具。目…

发表回复

您的电子邮箱地址不会被公开。

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