8

I want to get Ip address of my machine in javascript which is further refer in my html page. I have refer all the suggested links but I do not get any answer. I do not want to use any link to get the IP so i tried with following line of code in my javascript

var ip = '<%=request.getRemoteAddr();%>';

or

var ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
var ip = Request.UserHostAddress.ToString();

But do not get the result.

Please help me to get the solution.I want to include this javascript in my html page and I do not want to use any link to get the IP.

All the links I have gone through gives the external links to get the IP address and I do not want to use any external link to get the IP.

8
  • possible duplicate of Can You Get A Users Local LAN IP Address Via JavaScript? Commented Apr 30, 2015 at 5:32
  • @ Kishor Pawar I have mention in my question that i do not want to use any link to get IP address.I have already gone through this links Commented Apr 30, 2015 at 5:34
  • possible duplicate of How to find ip Address using Html? Commented Apr 30, 2015 at 5:37
  • @Danny Sir, I have tried it already Commented Apr 30, 2015 at 5:39
  • @ rachana are you using JSPs? Commented Apr 30, 2015 at 5:40

4 Answers 4

6

Given from here you can do that.

/**
 * Get the user IP throught the webkitRTCPeerConnection
 * @param onNewIP {Function} listener function to expose the IP locally
 * @return undefined
 */
function getUserIP(onNewIP) { //  onNewIp - your listener function for new IPs
    //compatibility for firefox and chrome
    var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
    var pc = new myPeerConnection({
        iceServers: []
    }),
    noop = function() {},
    localIPs = {},
    ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
    key;

    function iterateIP(ip) {
        if (!localIPs[ip]) onNewIP(ip);
        localIPs[ip] = true;
    }

     //create a bogus data channel
    pc.createDataChannel("");

    // create offer and set local description
    pc.createOffer().then(function(sdp) {
        sdp.sdp.split('\n').forEach(function(line) {
            if (line.indexOf('candidate') < 0) return;
            line.match(ipRegex).forEach(iterateIP);
        });

        pc.setLocalDescription(sdp, noop, noop);
    }).catch(function(reason) {
        // An error occurred, so handle the failure to connect
    });

    //listen for candidate events
    pc.onicecandidate = function(ice) {
        if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
        ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
    };
}

// Usage

getUserIP(function(ip){
    alert("Got IP! :" + ip);
});
Sign up to request clarification or add additional context in comments.

3 Comments

this somehow doesnt work on IE. it says object is not supported. Is there any counterpart in IE? i really need this to find local machine ip.
This seems to work find in Chrome, but fails in Firefox, IE, and EDGE.
5

I dont think that there is a notion of hosts or ip-addresses in the javascript standard library. So you'll have to access some external service to look up hostnames for you.

Unless you might want to send a request to the server which returns you the host IP address!!

EDIT

In JSP you you can use getRemoteHost() method from HttpServletRequest

to get the IP address of the user.

So you can write something like this -

var ip = '<%=request.getRemoteHost();%>'; 

^^ the above line is JSP code, this should be part of the JSP file that you return from java servlet container like a tomcat. This does not work in static HTML pages.

5 Comments

Can you please explain how to do it
Why not? What does it say??
I want to get the IP in my javascript and then want to pass that ip to further functioning. so I have wrote like this var ip = '<%=request.getRemoteHost();%>'; in my java script.But it takes <%=request.getRemoteHost();%>as a value
Sorry, I forgot to mention. That code should be in a JSP file and you should return that JSP file from the server. It does not work in the static HTML page. <%=request.getRemoteHost();%> is JSP code
it returns the host ip address. can u please let me know how to get the local machine's ip address from which the url is invoked?
2

The cgi, written in C-language bellow, returns the list of the environment parameters, among them REMOTE_ADDR. It constitutes a base for any HTML page, providing cgi are enabled in the HTTP server (Apache2 for instance).

Just compile the source in your directory /cgi/bin and call it from your browser.

/* -----------------------------------------------------
ENVVARS.C
A simple program in C designed for working
in a CGI context - print the environment
variables.
-------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  m  a  i  n
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int main(int argc, char **argv, char **env)
{
char **pe;
printf("Content-type: text/html\n\n"
"<html>"
"<head>"
"<title>ENVVARS</title>"
"<body>"
"<h1>ENVVARS</h1>"
"<h3>My pid is: %d</h3>\n",getpid());
printf("<ul>");
for (pe=env; pe && *pe; pe++) printf("<li>%s<//li>\n",*pe);
printf("</ul>");
printf("</body></html>");
return 0;
} // end main
//////////////////// EOF //////////////////////////////

Comments

-7

Try the following code

function myIP() {
    if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

    xmlhttp.open("GET","http://api.hostip.info/get_html.php",false);
    xmlhttp.send();

    hostipInfo = xmlhttp.responseText.split("\n");

    for (i=0; hostipInfo.length >= i; i++) {
        ipAddress = hostipInfo[i].split(":");
        if ( ipAddress[0] == "IP" ) return ipAddress[1];
    }

    return false;
}

4 Comments

OP has clearly mentioned that no external links has to be used! I do not want to use any link to get the IP.
@ᴀʀᴜn BᴇrtiL Yes, codeMan is right I have metion in my question that I do not want to use any external links
Javascript has no concept of self IP so you would have to use some external resource, even if that is another scripting language file on the same machine.
api.hostip.info is defunct.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.