如何用js或者jquery获取客户端的IP地址

小石头哥 发布于 2012/10/25 11:28
阅读 34K+
收藏 1

华为云11月刊推送:DIY微信问答机器人,高性能计算代码的20个技巧!>>>

如何用js或者jquery获取客户端的IP地址 
$.getJSON("http://chaxun.1616.net/ip.htm",  
          function (data) {  
         alert(data.ip);  
       }).error(function () { alert("获取IP失败请联网查询"); }) ; 
这样的话 不知道怎么获取不到。我想最好能够自己写个服务端就好了
加载中
0
小石头哥
小石头哥

引用来自“Narky”的答案

代码测试通过

jQuery(function($){
	var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_='+Math.random();  
	$.getJSON(url, function(data){
		alert(data.Ip);  
	});
});


'http://chaxun.1616.net/s.php  这个地址等下又过期了咋办
0
Narky
Narky

把请求地址换成 http://chaxun.1616.net/s.php?type=ip&output=json 就行了

然后输出 data.Ip

0
小石头哥
小石头哥

引用来自“Narky”的答案

把请求地址换成 http://chaxun.1616.net/s.php?type=ip&output=json 就行了

然后输出 data.Ip

XMLHttpRequest cannot load http://chaxun.1616.net/s.php?type=ip&output=json . Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.也不行啊
0
Ryan-瑞恩
Ryan-瑞恩
<%@ page contentType="text/html; charset=UTF-8"%>
<HTML>
<HEAD>
<TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<script type="text/javascript" src="getIpAndMac.js"></script>
<SCRIPT language=JScript
event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
document.forms[0].txtMACAddr.value = unescape(MACAddr);
document.forms[0].txtIPAddr.value = unescape(IPAddr);
document.forms[0].txtDNSName.value = unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>
<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext)
for=foo>
if (objObject.IPEnabled != null && objObject.IPEnabled != "undefined"
&& objObject.IPEnabled == true) {
if (objObject.MACAddress != null && objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if (objObject.IPEnabled && objObject.IPAddress(0) != null
&& objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if (objObject.DNSHostName != null
&& objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</SCRIPT>
</HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr;
var IPAddr;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel = 3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<FORM id=formfoo name=formbar action=MacJsp.jsp method=post><INPUT
value="" name="txtMACAddr"> <INPUT value="" name="txtIPAddr">
<INPUT value="" name="txtDNSName" onclick="getIpAndMacAddress()"></FORM>
</BODY>

</HTML>



http://www.iteye.com/topic/1123385

0
leo108
leo108

AJAX不能跨域,所以不行。

楼上的代码基本没有可行性,IE专用,其他浏览器无效

0
小石头哥
小石头哥

引用来自“leo108”的答案

AJAX不能跨域,所以不行。

楼上的代码基本没有可行性,IE专用,其他浏览器无效

那有啥好办法啊
Narky
Narky
回复 @leo108 : 跨域可以使用JSONP,他有个callback,试试这个地址 http://chaxun.1616.net/s.php?type=ip&output=json&callback=J1616.chaxun.ip.callback&_=1351137934219,自己写一下callback方法。 要使用别人的服务只能这样,你可以自己写一个服务端的自己用好了
leo108
leo108
为什么要用JS获取呢,服务端处理就好了
0
Narky
Narky

代码测试通过

jQuery(function($){
	var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_='+Math.random();  
	$.getJSON(url, function(data){
		alert(data.Ip);  
	});
});


返回顶部
顶部