准备工作:chrome 浏览器,修改配置.
地址栏:
chrome://flags/;
然后:
Anonymize local IPs exposed by WebRTC.
设置为disable
点击relaunch;
接下来.
把下面的代码存为html运行一下WEB页就可以了.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h4>
Demo for:
<a href="https://github.com/diafygi/webrtc-ips">
https://github.com/diafygi/webrtc-ips
</a>
</h4>
<p>
This demo secretly makes requests to STUN servers that can log your
request. These requests do not show up in developer consoles and
cannot be blocked by browser plugins (AdBlock, Ghostery, etc.).
</p>
<h4>Your local IP addresses:</h4>
<ul></ul>
<h4>Your public IP addresses:</h4>
<ul></ul>
<script>
//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;
var useWebKit = !!window.webkitRTCPeerConnection;
//bypass naive webrtc blocking
if(!RTCPeerConnection){
//create an iframe node
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
//invalidate content script
iframe.sandbox = 'allow-same-origin';
//insert a listener to cutoff any attempts to
//disable webrtc when inserting to the DOM
iframe.addEventListener("DOMNodeInserted", function(e){
e.stopPropagation();
}, false);
iframe.addEventListener("DOMNodeInsertedIntoDocument", function(e){
e.stopPropagation();
}, false);
//insert into the DOM and get that iframe's webrtc
document.body.appendChild(iframe);
var win = iframe.contentWindow;
RTCPeerConnection = win.RTCPeerConnection
|| win.mozRTCPeerConnection
|| win.webkitRTCPeerConnection;
useWebKit = !!win.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(useWebKit)
servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
//construct a new RTCPeerConnection
var pc = new RTCPeerConnection(servers, mediaConstraints);
function handleCandidate(candidate){
//match just the IP address
var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/
var ip_addr = ip_regex.exec(candidate)[1];
//remove duplicates
if(ip_dups[ip_addr] === undefined)
callback(ip_addr);
ip_dups[ip_addr] = true;
}
//listen for candidate events
pc.onicecandidate = function(ice){
//skip non-candidate events
if(ice.candidate)
handleCandidate(ice.candidate.candidate);
};
//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(){});
//wait for a while to let everything done
setTimeout(function(){
//read candidate info from local description
var lines = pc.localDescription.sdp.split('\n');
lines.forEach(function(line){
if(line.indexOf('a=candidate:') === 0)
handleCandidate(line);
});
}, 1000);
}
//insert IP addresses into the page
getIPs(function(ip){
var li = document.createElement("li");
li.textContent = ip;
//local IPs
if (ip.match(/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/))
document.getElementsByTagName("ul")[0].appendChild(li);
//assume the rest are public IPs
else
document.getElementsByTagName("ul")[1].appendChild(li);
});
</script>
</body>
</html>
分享到:
相关推荐
C#获取本地ip,获取局域网ip,获取电脑用户名,,,,,,,,,,,,,,
本工具可一键获取到本机在局域网中所分配的IP地址。十分高效便捷。
获取局域网IP获取局域网IP获取局域网IP
获取内网ip地址3种方法。 1、TIdIPWatch控件方法 2、TGStack 3、TWSADATA
使用java获取所在局域网的所有在用ip,可以检测目前有哪些ip在使用
用来获取局域网内本机的IP。 用来获取局域网内本机的IP。 用来获取局域网内本机的IP。 用来获取局域网内本机的IP。 用来获取局域网内本机的IP。
C++获取所有局域网可用IP,使用PING的方式简单易懂,但缺点就是时间消耗比较多,给新手看的,大神请无视 vs2010编译
使用Unity3D获取局域网内所有的IP地址,代码需要更改成使用者自己的网段,然后将脚本挂载到游戏物体中,运行程序就可以获取到网段下所有连入到局域网的IP.
一键获取本机局域网的IP地址,十分快捷。
程序启动时首先获取本机的IP和MAC地址; 然后获取局域网内所有计算机的IP地址; 输入IP地址回车,获取该IP的MAC地址; 输入“STARTSCAN”回车,重新获取局域网内所有计算机的IP地址; 输入“ALLSCAN”回车,获取...
1、获取本机的IP地址集合: /// /// 获取本机所有ip地址 /// /// <param name=netType>InterNetwork:ipv4地址,InterNetworkV6:ipv6地址 /// <returns>ip地址集合 public static List<string> GetLocalIp...
获取手机IP各种地址,网上都是获取局域网的ip,写了一个能真正获取手机的各种iP各种地址。
获取局域网内IP地址的方法: private void EnumComputers() { try { for (int i = 1; i ; i++) { Ping myPing; myPing = new Ping(); myPing.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted...
1、在配置好ip地址方案的情况下,首先选择本机网卡(本机网卡选项里面选择你使用的要切换的网卡名称) 2、在“上网方式”列表框中选择第一步已经配置好的上网方案 3、点击“切换固定ip”即可。 温馨提示:如果是...
VB获取局域网计算机名称和IP 在局域网中查找任意计算机 并获取指定计算机的名称和IP 明日科技Vb教学实例源码 简单的网络基
InnoSetup 获取本机IP地址的方法
C# 编程 获取局域网IP及网卡MAC地址C# 编程 获取局域网IP及网卡MAC地址C# 编程 获取局域网IP及网卡MAC地址C# 编程 获取局域网IP及网卡MAC地址
获取局域网内的ip地址,通过异步的方法,使得在要数据的时候界面不会发生卡死的情况。
VB获取局域网任一台电脑的IP地址源代码,包括服务器,使用vb打开该项目即可运行,调试成功,绝对好用
控制台程序,可获取局域网中所有的IP地址以及MAC地址,MAC地址只能获取本网段内的。输入“ALLSCAN”回车,获取网段内所有IP(0-255)的MAC地址