+
95
-

js如何获取用户的内网ip地址?

请问js如何获取用户的内网ip地址?

网友回复

+
15
-

function getLocalIP() {
  return new Promise(function(resolve, reject) {
    // NOTE: window.RTCPeerConnection is "not a constructor" in FF22/23
    var RTCPeerConnection = /*window.RTCPeerConnection ||*/ window.webkitRTCPeerConnection || window.mozRTCPeerConnection;

    if (!RTCPeerConnection) {
      reject('浏览器不支持此api');
    }
    
    var rtc = new RTCPeerConnection({iceServers:[]});
    var addrs = {};
    addrs["0.0.0.0"] = false;
    
    function grepSDP(sdp) {
        var hosts = [];
        var finalIP = '';
        sdp.split('\r\n').forEach(function (line) { // c.f. http://tools.ietf.org/html/rfc4566#page-39
            if (~line.indexOf("a=candidate")) {     // http://tools.ietf.org/html/rfc4...

点击查看剩余70%

+
15
-
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>获取设备内网ip</title>


    <style>
    </style>
</head>
<body>
    <div id="list"></div>
    <script type="text/javascript"> 
        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);
...

点击查看剩余70%

我知道答案,我要回答