如何使用javascript或Jquery打印客户端IP和域



尝试使用json标记,但存在一些问题,无法获取域,尝试为域和ip使用一个标记。有任何建议如何获得和打印它们。

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

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

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

现在,您需要向PHP页面发送AJAX请求。假设我们使用jquery使用以下方法来实现这一点:

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

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

您可以使用window.location.hostname 获取域

试试这个

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

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

JS Fiddle

您可以通过API获取ip。

在谷歌上搜索时,在SO上找到了它。我可以使用客户端Javascript执行DNS查找(主机名到IP地址)吗?

<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

您可以通过访问域

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。我喜欢自由资产阶级

$.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
    }
});

最新更新