如何打印客户端IP和Domin使用javascript或jquery

问题描述:

尝试使用json标签,但存在一些问题并且没有获取域,请尝试为域和ip使用一个标签。有任何建议如何获得和打印它们。如何打印客户端IP和Domin使用javascript或jquery

+0

您的问题太含糊?你能否详细说明一下? – Neo 2014-09-30 08:58:43

+0

只是试图获得IP和域时,客户端点击。并希望存储在我的数据库..这是可能的? – user3851652 2014-09-30 09:01:26

+0

还是很模糊的,你想获得客户端ip和其域名? – Neo 2014-09-30 09:02:31

试试这个

<script type="application/javascript"> 
$.get("http://ipinfo.io", function(response) { 
      alert(response.ip); 
     }, "jsonp"); 
</script> 

OR

<script type="application/javascript"> 
$.get("http://ipinfo.io/json", function(response) { 
      console.log(response); 
     }); 
</script> 

JS Fiddle

+0

需要你的帮助面临的问题,它可以在小提琴中展现; – user3851652 2014-09-30 09:07:57

你可以用API获取IP地址。

虽然谷歌搜索找到一个,发现这里的SO Can I perform a DNS lookup (hostname to IP address) using client-side Javascript?

<script type="application/javascript"> 
    function getip(json){ 
     alert(json.ip); // alerts the ip address 
    } 
</script> 

<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script> 

域名是非常简单的。 只需使用location.hostname

从逻辑上讲,你需要从客户端发送请求,并使用与IP回应服务器端脚本。有几种方法可以实现这一点。

让我解释一种方法,你可以这样做: 发送ajax请求到你的代码的PHP页面。 PHP将为您提供客户端IP。支持PHP页面getIP.php与下面的代码:

header("Content-Type: application/json"); 
$sIP = $_SERVER['REMOTE_ADDR']; 
echo json_encode($sIP); 
exit(); 

现在,您将需要发送一个AJAX请求到PHP页面。假设我们使用jQuery使用以下方法实现此目标:

var myIP = ''; 
$.ajax({ 
    url: "getIP.php", 
    method: "get", 
    dataType: "json", 
    success: function(data) { 
    myIP = data; 
    } 
}); 

我们刚刚实现了逻辑。但是如果你没有访问服务器端脚本的权限。您可以使用任何其他提供IP的API或服务。

可以使用window.location.hostname

您可以通过

window.location.origin; 

访问域或IE可能要做到这一点得到域。

if (!window.location.origin) { 
    window.location.origin = window.location.protocol + "//" + window.location.hostname +  
    (window.location.port ? ':' + window.location.port: ''); 
} 

对于ip,您需要使用第三方服务来获取ip。 我喜欢freegeoip

$.ajax({ 
    url: '//freegeoip.net/json/', 
    type: 'POST', 
    dataType: 'jsonp', 
    success: function(location) { 
     console.log(location.ip);//Apart from ip it also gives more details 
     //Like country etc 
    } 
});