Get Client IP Address in ASP.NET using JavaScript
So, it all started with a requirement for my website when I needed to get the client's IP address for some security purposes. It felt like an easy task initially, but after some time, I realized that most of the available methods of getting an IP address return the Server's IP Address and not the local IP address of the client. And some APIs return your Public IP address, but none return the local IP address. So, we will see how we can achieve that.
Using JavaScript
In JavaScript, you can use the following script to get the IP address.
< 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>
Just paste this script into your JavaScript code and add this element to your body tag.
<body>
<div id="list"></div>
</body>
Now, just run the code, and this will get you your Client or Local IP address.
Getting Public IP address
There are two types of IP addresses - Local and Public. The above script is for getting the Client or Local IP Address, but for getting the Public IP Address, you can use this script.
function getIP(json) {
document.write("My public IP address is: ", json.ip);
}
<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script>
This will return your Public IP Address.
Zain AkramPosted Jan 5, 2021, 10:37 AM
I appreciate your effects but this not giving the local area ip address. I am getting f9c09ac4-2f90-4347-9fc2-68b7f03a9b85.local
Subhasis TripathyPosted Aug 26, 2020, 9:07 AM
Hello i have tried your method it is getting the data and it is showing my IP address in some random format and each time I refresh the page it is just keep on changing, and it is definitely not my local IP I want local IP what u get when u click ipconig in your commandprompt please help.
Manuel Eduardo CabreraPosted Dec 3, 2019, 7:07 PM
I HJAVE A CUESTION HOW TO GET THE HOSTNAME FROM LOCAL COMPUTER