我需要以某种方式检索客户端的IP地址使用JavaScript;没有服务器端代码,甚至没有SSI。
然而,我并不反对使用免费的第三方脚本/服务。
我需要以某种方式检索客户端的IP地址使用JavaScript;没有服务器端代码,甚至没有SSI。
然而,我并不反对使用免费的第三方脚本/服务。
当前回答
如果你在某个地方使用NGINX,你可以添加这个片段并通过任何AJAX工具询问你自己的服务器。
location /get_ip {
default_type text/plain;
return 200 $remote_addr;
}
其他回答
您可以通过服务器端与JSONP进行中继
而谷歌找到一个,发现它在这里所以我可以执行一个DNS查找(主机名到IP地址)使用客户端Javascript?
<script type="application/javascript">
function getip(json){
alert(json.ip); // alerts the ip address
}
</script>
<script type="application/javascript" src="http://www.telize.com/jsonip?callback=getip"></script>
注意:telize.com API已于2015年11月15日永久关闭。
如果你在某个地方使用NGINX,你可以添加这个片段并通过任何AJAX工具询问你自己的服务器。
location /get_ip {
default_type text/plain;
return 200 $remote_addr;
}
使用ipdata.co。
该API还提供地理位置数据,并拥有10个全球端点,每个端点每天能够处理>800M请求!
这个答案使用了一个非常有限的“测试”API键,仅用于测试几个调用。注册您自己的免费API密钥,每天最多可获得1500个开发请求。
$ . get (" https://api.ipdata.co?Api-key =test",函数(响应){ $(" #反应”). html (response.ip); }, " jsonp "); < script src = " https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js " > < /脚本> < pre id =“响应”> < / >之前
我非常喜欢api.ipify.org,因为它同时支持HTTP和HTTPS。
下面是一些使用jQuery获取IP的例子。
基于HTTPS的JSON格式
https://api.ipify.org?format=json
$.getJSON(“https://api.ipify.org/?format=json”, function(e) { 警报(e.ip); }); <script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script>
基于HTTP的JSON格式
http://api.ipify.org?format=json
$.getJSON(“http://api.ipify.org/?format=json”, function(e) { 警报(e.ip); }); <script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script>
基于HTTPS的文本格式
如果你不想要JSON格式,也有一个通过HTTPS的明文响应
https://api.ipify.org
基于HTTP的文本格式
在HTTP上也有明文响应
http://api.ipify.org
你不能。你得问服务员。