Reputation: 335
Hi I found how to get client ip by answer here: Can I perform a DNS lookup (hostname to IP address) using client-side Javascript?
But I don't understand how to use it.
This is what I have:
var user;
if ($('#user-id').length) {
user = $('#user-id').text();
} else {
http://jsonip.appspot.com/?callback=getip
function getip(json){
user = json.ip;
}
}
I don't understand how to include the url and how to use the getip function.
I need to set the user to the ip address in the else.
Thanks!
Upvotes: 3
Views: 12549
Reputation: 269
You could use something like this:
<script type="text/javascript">
var userip;
</script>
...
<script type="text/javascript" src="http://l2.io/ip.js?var=userip"</script>
...
<script type="text/javascript">
document.write("Your IP is :", userip);
</script>
Here is the url of this library: http://l2.io/
Upvotes: 0
Reputation: 40149
You can only access your domain from JavaScript, you cannot do cross-domain communication with JavaScript unless you do the communication with iframes.
If you have a dynamic backend such as PHP, Java, Python, Ruby, CGI, etc you can easily fetch the IP address from the user visiting your page. Each language has their own mechanism.
Upvotes: 0
Reputation: 7922
You've got a random, free-floating URL in your javascript syntax.
This is how to make remote JSON request with jquery.
http://api.jquery.com/jQuery.getJSON/
I would suggest you get more familiar with javascript in general.
Upvotes: 0
Reputation: 137997
Using jQuery, you could make a JSONP call:
$.getJSON('http://jsonip.appspot.com/?callback=?',
function(data){
alert(data.ip);
});
Probably easier to understand - an alternative, without jQuery, would be:
<script type="text/javascript">
function getip(data){
alert(data.ip);
}
</script>
<script type="text/javascript" src="http://jsonip.appspot.com/?callback=getip">
</script>
Note that when you include http://jsonip.appspot.com/?callback=getip as a script in your HTML you get valid JavaScript as response:
getip({"ip": "147.234.2.5", "address":"147.234.2.5"});
This line executes your function with the proper parameter. Note that the function's name is given to it by query string.
Upvotes: 5