如何通过javascript捕获ipconfig的ipv4?

waxmsbnn  于 2023-02-20  发布在  Java
关注(0)|答案(1)|浏览(152)

在我的办公室里,有些电脑是通过局域网连接的。它们被分配了一个A类IP地址。现在我创建了一个运行在另一台服务器上的Web应用程序,可以通过局域网电脑访问。所以,我尝试了JavaScript代码和一些Java代码来获取电脑的IP地址(可以通过电脑上的ipconfig命令看到)。
下面的JavaScript代码,我已经用来获得局域网电脑的IP地址:

< script >  
    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];  
        });  
        document.getElementById('list').textContent = displayAddrs.join(" or perhaps ") || "n/a";  
    }  
  
    function grepSDP(sdp) {  
        var hosts = [];  
        sdp.split('\r\n').forEach(function(line) {  
            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 {  
    document.getElementById('list').innerHTML = "<code>ifconfig| grep inet | grep -v inet6 | cut -d\" \" -f2 | tail -n1</code>";  
    document.getElementById('list').nextSibling.textContent = "In Chrome and Firefox your IP should display automatically, by the power of WebRTCskull.";  
} < /script>

对于本地主机测试,它给出了完美的IPv4 IP地址,但是当我在服务器中部署代码时,它开始给出其他的东西。
如果是Java:这是我下面的代码:

Enumeration<NetworkInterface> interfaces=NetworkInterface.getNetworkInterfaces();
while(interfaces.hasMoreElements()){
    NetworkInterface current=interfaces.nextElement();
    Enumeration<InetAddress> addresses=current.getInetAddresses();
    while(addresses.hasMoreElements()){
        InetAddress current_addr=addresses.nextElement();
        if(current_addr instanceof Inet4Address){
            String hostAddr=current_addr.getHostAddress();
            String hostName=current_addr.getHostName();
        }
    }
}

这段代码还为我提供了部署Web应用程序的服务器的IPv4。请帮助我获取LAN PC的IP地址,这可以通过该PC上的“ipconfig”命令看到。

ylamdve6

ylamdve61#

我想试试这个-〉https://learn.microsoft.com/en-us/answers/questions/573225/(已解决)-如何查找IP地址-正在使用-(ethe

相关问题