【问题标题】:How to get Computer Name and IP address by Jquery or JS如何通过 Jquery 或 JS 获取计算机名称和 IP 地址
【发布时间】:2017-10-25 20:59:45
【问题描述】:

如何通过jqueryJS获取计算机名和IP地址

【问题讨论】:

标签: javascript jquery


【解决方案1】:

我发现这段代码 sn-p 确实对我有用

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.";
  }
&lt;div id="list"&gt;&lt;/div&gt;

与其他主要返回服务器 IP 地址的代码不同,它返回机器的客户端 IP 地址。请参阅本文 https://www.c-sharpcorner.com/blogs/getting-client-ip-address-or-local-ip-address-in-javascript

【讨论】:

  • 在我的机器上,它返回一个随机(版本 4)uuid。如果它返回机器名称,我会认为这是一个安全漏洞。
  • @georgeawg 我也是,我认为这与安全有关,要么是我们的 PC 被加密,要么是代码有问题
【解决方案2】:

要使用 JavaScript 获取计算机名称和 IP 地址,

-- 计算机名

var network = new ActiveXObject('WScript.Network');
    // Show a pop up if it works
    alert(network.computerName);

-- IP 地址

$.getJSON("http://jsonip.com/?callback=?", function (data) {
    console.log(data);
    alert(data.ip);
});

【讨论】:

  • ActiveXObject 仅在 IE 浏览器上可用。
【解决方案3】:

你可以使用简单的ajax请求来获取IP地址:-

let xhttp = new XMLHttpRequest();
xhttp.open("GET", "https://api.ipify.org/?format=json", true);
xhttp.send();
xhttp.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {
        let ip = JSON.parse(this.responseText).ip;
    }
};

【讨论】:

    【解决方案4】:

    您可以通过使用简单的 fetch 请求来获取 IP 地址:-

    async function getIP(){
        let req = await fetch("https://peerip.glitch.me/");
        let data = await req.json();
        let IP = data.ip;
        return IP;
    }
    

    【讨论】:

      【解决方案5】:

      如果您需要这些详细信息客户端, 您可以使用https://www.ipify.org/ 等第三方服务并调用 API 以获取 IP 等详细信息。

      有关其他详细信息,请使用类似的服务。

      但是,如果您在服务器端查看此详细信息,那么这取决于您使用的编程语言,尽管在服务器端,这些信息在 HTTP 标头中很容易获得。

      有关服务器端详细信息,请参阅类似问题。

      How to get the exact client browser name and version in Spring MVC?

      【讨论】:

        【解决方案6】:

        计算机名

        <script type="text/javascript">
            var network = new ActiveXObject('WScript.Network');
            alert(network.computerName);
        </script>
        

        【讨论】:

        • 你是怎么得到ActiveXObject的?你会做一个小提琴吗?还会在控制台ActiveXObject is not defined 中抛出错误。
        • ActiveXObject 仅在 IE 浏览器上可用。
        【解决方案7】:

        浏览器、操作系统、屏幕颜色、屏幕分辨率、Flash 版本和 Java 支持都应该可以从 JavaScript 中检测到(可能还有更多)。但是,计算机名是不可能的

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-14
          • 1970-01-01
          • 1970-01-01
          • 2014-08-08
          • 1970-01-01
          • 2011-02-18
          • 2018-01-02
          • 2018-08-13
          相关资源
          最近更新 更多