通过JS获取你真实的外网IP和内网IP,就算开代理也没有用,想想真是太可怕了,还能不能愉快的装逼了!

代码:

//get the IP addresses associated with an account

function getIPs(callback){

var ip_dups = {};

//compatibility for firefox and chrome

var RTCPeerConnection = window.RTCPeerConnection

|| window.mozRTCPeerConnection

|| window.webkitRTCPeerConnection;

//bypass naive webrtc blocking

if (!RTCPeerConnection) {

var iframe = document.createElement('iframe');

//invalidate content script

iframe.sandbox = 'allow-same-origin';

iframe.style.display = 'none';

document.body.appendChild(iframe);

var win = iframe.contentWindow;

window.RTCPeerConnection = win.RTCPeerConnection;

window.mozRTCPeerConnection = win.mozRTCPeerConnection;

window.webkitRTCPeerConnection = win.webkitRTCPeerConnection;

RTCPeerConnection = window.RTCPeerConnection

|| window.mozRTCPeerConnection

|| window.webkitRTCPeerConnection;

}

//minimal requirements for data connection

var mediaConstraints = {

optional: [{RtpDataChannels: true}]

};

//firefox already has a default stun server in about:config

//    media.peerconnection.default_iceservers =

//    [{"url": "stun:stun.services.mozilla.com"}]

var servers = undefined;

//add same stun server for chrome

if(window.webkitRTCPeerConnection)

servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};

//construct a new RTCPeerConnection

var pc = new RTCPeerConnection(servers, mediaConstraints);

//listen for candidate events

pc.onicecandidate = function(ice){

//skip non-candidate events

if(ice.candidate){

//match just the IP address

var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/

var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];

//remove duplicates

if(ip_dups[ip_addr] === undefined)

callback(ip_addr);

ip_dups[ip_addr] = true;

}

};

//create a bogus data channel

pc.createDataChannel("");

//create an offer sdp

pc.createOffer(function(result){

//trigger the stun server request

pc.setLocalDescription(result, function(){}, function(){});

}, function(){});

}

//Test: Print the IP addresses into the console

getIPs(function(ip){console.log(ip);});

因为Firefox和Chrome支持WebRTC,可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的。

解决办法

那我们有没有办法继续装逼呢?答案是肯定的。我们可以关闭WebRTC。

Chrome

安装插件 https://chrome.google.com/webstore/detail/webrtc-block/nphkkbaidamjmhfanlpblblcadhfbkdm?hl=en

无法下载的一定是你上网姿势不科学。

Firefox

用 media.peerconnection.enabled 禁用。

转载于:https://www.cnblogs.com/ranyonsue/p/9174137.html

通过JS如何获取IP地址相关推荐

  1. js获取IP地址多种方法实例教程

    js获取IP地址方法总结  js代码获取IP地址的方法,如何在js中取得客户端的IP地址. 原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338. ...

  2. JS获取IP地址,控制台提示returnCitySN未定义的问题

    问题:通过搜狐的IP地址查询接口https://pv.sohu.com/cityjsonx去获取IP地址的时候,控制台报错:returnCitySN未定义. 解决方案:可以通过在链接后面添加时间戳的方 ...

  3. PHP获取IP地址所在的地理位置

    PHP获取IP地址所在的地理位置 时间:2011-04-02 16:19来源:三知开发网 作者:许亮 点击: 787 次 http://www.sunchis.com/html/php/phpsour ...

  4. kali linux查询自己的ip,Kali Linux常用服务配置教程获取IP地址

    Kali Linux常用服务配置教程获取IP地址 下面以Kali Linux为例,演示获取IP地址的方法 (1)设置网络接口为自动获取IP地址.在Kali Linux的收藏夹中单击图标,将显示所有的程 ...

  5. python 根据地址求经纬度 谷歌_js获取ip地址利用谷歌地图获得经纬度

    js获取ip地址利用谷歌地图获得经纬度-www.jquerycn.cn var  massage=null; function userip(ip){ $.getScript("http:/ ...

  6. java获取IP地址和MAC地址方式

    java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现.最简单的方式,确实能获取该浏 ...

  7. php 获取ip地址所在的区域

    /** * get_ip_lookup 获取ip地址所在的区域 * @param null $ip * @return bool|mixed */ function get_ip_lookup($ip ...

  8. uniapp如何获取IP地址

    uniapp如何获取IP地址 获取ip地址 js获取ip地址 uni-app获取ip地址 获取ip地址 最近一个uni项目涉及到获取IP地址,在网上看到用引入外部JS的方法来获取,uni-app配置模 ...

  9. CentOS 7如何设置Linux开机自动获取IP地址

    centos7 minimal版默认安装好后没有获取ip地址,需要手动配置.方法如下: 1.输入"ip addr"并按回车键确定,发现无法获取IP(CentOS 7默认没有ifco ...

最新文章

  1. 速查100 WebServers
  2. c 语言中浮点数舍入,浮点数在C中舍入,我不明白为什么
  3. 小程序跨行跨列多列复杂表格实现
  4. Oracle分区表常用命令
  5. 前端学习(285):移动端简单知识
  6. 第八十三期:这些高性能负载均衡架构知识点,90%的人分不清!
  7. php5.6 mongo 扩展,PHP5.6的安装及redis、memcache、mongo扩展
  8. mysql从盘延迟_Mysql-主从延迟解决方法
  9. Java JPA学习与使用小记
  10. mariadb10.2 mysql5.7_说说在MySQL5.7迁到MariaDB10.2时栽的一部分坑
  11. 虚拟主机支持ssl支持php7,虚拟主机支持https改造吗
  12. 怎么查看ofd格式电子发票? 2种简单方法免费查看
  13. 2019年8月 华为鸿蒙,华为2019年开发者大会将于8月9日举行,期待鸿蒙吗?
  14. svn: E230001: Server SSL certificate verification failed: certificate issued for a different hostnam
  15. penghui_031413 Bat命令学习
  16. 【每日英文】2021.8.5
  17. 密码模块安全等级 GM/T 0028
  18. 2022年中级会计中级经济学法考试复习题及答案
  19. Rabbit and Grass --- 组合博弈 GS函数 记录
  20. 项目管理的十大知识领域

热门文章

  1. boost::hana::is_empty用法的测试程序
  2. boost::EccentricityProperty用法的测试程序
  3. boost::geometry::num_geometries用法的测试程序
  4. boost :: dynamic_bitset时序测试
  5. Boost:boost::bimaps::list_of的测试程序
  6. DCMTK:演示状态查看器-网络发送组件(存储SCU)
  7. VTK:小部件之ImageTracerWidgetNonPlanar
  8. 为Qt Designer创建自定义Widgets小部件
  9. Qt Creator管理数据收集设置
  10. Qt Creator运行自动测试