尝试使用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
}
});