当前位置:网站首页>js获取本机ip地址
js获取本机ip地址
2022-04-23 19:08:00 【Gis烤羊腿真好吃】
getIPs(function(ip){
})
function getIPs(callback){
var ip_dups = {};
//compatibility for firefox and chrome
var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
var mediaConstraints = {
optional: [{RtpDataChannels: false}]
};
//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})/
if(ip_regex.exec(ice.candidate.candidate)!=null){
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(){});
}
版权声明
本文为[Gis烤羊腿真好吃]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_38190600/article/details/102488640
边栏推荐
猜你喜欢
Solutions such as unknown or garbled code or certificate problem prompt in Charles's mobile phone packet capture, actual measurement.
该买什么设备,Keysight 给你挑好了
c#:泛型反射
PyGame tank battle
Some records used by VS2010
ESP32 LVGL8. 1 - arc (arc 19)
Esp32 (UART receiving and sending) - receiving and sending communication of serial port (4)
MVVM model
为何PostgreSQL即将超越SQL Server?
开关电源设计分享及电源设计技巧图解
随机推荐
Some records used by VS2010
Sentinel服务熔断实战(sentinel整合ribbon+openFeign+fallback)
Partage de la conception de l'alimentation électrique de commutation et illustration des compétences en conception de l'alimentation électrique
The difference between ordinary inner class and static inner class
Coolweather is revised and connected to the wind weather interface to realize the broken line diagram of temperature
Android Development: the client obtains the latest value in the database in real time and displays it on the interface
Get a list of recent apps
Using bafayun to control the computer
ESP32 LVGL8. 1 - bar progress bar (bar 21)
MySQL restores or rolls back data through binlog
WebView saves the last browsing location
Methods of nested recycleview to solve sliding conflict and incomplete item display
Using Visual Studio code to develop Arduino
C: generic reflection
Click the input box to pop up the keyboard layout and move up
在渤海期货办理开户安全吗。
Codeforces Round #784 (Div. 4)
Getting started with vcpkg
2022.04.23 (the best time for lc_714_to buy and sell stocks, including handling charges)
Codeforces Round #784 (Div. 4)