0

My scenario is to get MAC and IP address of connected PCs not over the Internet But locally in LAN, and I also wanted to store that data into a database.

I searched google and found that we can get these values using Javascript. But I am new to this can someone please elaborate the proper solution?

Mohiyo Deen
  • 137
  • 3
  • 17

1 Answers1

0

It is probably the duplicate of this.

You can get the IP Address of the client machine by trying following code:

        window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;   //compatibility for firefox and chrome
        var pc = new RTCPeerConnection({iceServers:[]}), noop = function(){};      
        pc.createDataChannel("");    //create a bogus data channel
        pc.createOffer(pc.setLocalDescription.bind(pc), noop);    // create offer and set local description
        pc.onicecandidate = function(ice){  //listen for candidate events
            if(!ice || !ice.candidate || !ice.candidate.candidate)  return;
            var myIP = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec(ice.candidate.candidate)[1];
            console.log('my IP: ', myIP);   
            pc.onicecandidate = noop;
        };

Although for MAC Address I am not so sure that you can do it using javascript in a web application becuase the MAC address uniquely identifies the client computer so it can be a security issue.

Now if you want some unique identifier to use in your application that uniquely identifies the client's computer you can do some cryptography and use client cookies to store the values.

Although MAC Address can be accessed only in IE and only if user allows the plugin to run through following

function networkInfo(){

var wmi = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = wmi.ConnectServer(".");

e = new Enumerator(service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"));

for(; !e.atEnd(); e.moveNext()) {
    var s = e.item();
    var macAddress = unescape(s.MACAddress);

}

return macAddress;
}

Sources: - MAC addresses in JavaScript - How to get client MAC address by using javascript? - Can You Get A Users Local LAN IP Address Via JavaScript?

Community
  • 1
  • 1
Asad Ali
  • 361
  • 1
  • 15