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


相关推荐

  • JS闭包的作用与优缺点[通俗易懂]

    JS闭包的作用与优缺点[通俗易懂]一、什么是闭包闭包是指一个函数和对其周围状态(lexicalenvironment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。简单来说就是指有权访问另一个函数作用域中变量的函数。举个例子:functionfn(){varnum=10;functionfun(){console.log(num);}fun();}fn();这就是一个闭…

    2022年10月30日
  • vue与jquery的区别_vue 3

    vue与jquery的区别_vue 31.jquery介绍:想必大家都用过jquery吧,这个曾经也是现在依然最流行的web前端js库,可是现在无论是国内还是国外他的使用率正在渐渐被其他的js库所代替,随着浏览器厂商对HTML5规范统一遵循以及ECMA6在浏览器端的实现,jquery的使用率将会越来越低2.vue介绍:vue是一个兴起的前端js库,是一个精简的MVVM。从技术角度讲,Vue.js专注于MVVM模型的ViewM…

    2022年10月16日
  • Dijkstra算法

    Dijkstra算法

  • laravel 中配置文件.env解读

    laravel 中配置文件.env解读laravel 中配置文件.env解读

  • getchar用法[通俗易懂]

    getchar用法[通俗易懂]getchar用法1.从缓冲区读走一个字符,相当于清除缓冲区 2.前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误 3. getchar()是在输入缓冲区顺序读入一个字符(包括空…

    2022年10月19日
  • java 环境配置(详细教程)「建议收藏」

    java 环境配置(详细教程)「建议收藏」文章目录前言一、jdk下载二、windows1、jdk安装2、环境变量的配置3、检测是否配置成功前言java环境配置,网上教程很多,那我为什么还要写?首先为了完善我的知识体系今后一些软件的安装教程也可能会用到想写一个更加详细的,因为这并不仅仅是写给IT行业的,其它行业可能也需要配置java环境提示:以下是本篇文章正文内容,下面案例可供参考一、jdk下载如果你电脑已经下载了jdk,那就恭喜你可以跳过这一步了jdk的下载路径:https://www.oracle.co

发表回复

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

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