我正在为iPhone和Android工作jQuery Mobile和PhoneGap !!
在我的应用程序中,我需要找出移动设备的IP地址,并将其POST到服务器,以从服务器获得居住地和货币详细信息的详细信息作为结果(JSON格式)。
我创建了一些代码;但是它包含一个外部链接,http://jsonip.appspot.com/?asp.net,它的代码看起来像这样:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" language="javascript">
function myIP() {
if (window.XMLHttpRequest)
xmlhttp = new XMLHttpRequest();
else
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET","http://jsonip.appspot.com/?asp.net",false);
xmlhttp.send();
hostipInfo = xmlhttp.responseText;
obj = JSON.parse(hostipInfo);
document.getElementById("IP").value = obj.ip;
document.getElementById("ADDRESS").value = obj.address;
}
</script>
</head>
<body onload="myIP()">
IP: <input type="text" id="IP" name="IP" />
ADDRESS: <input type="text" id="ADDRESS" name="ADDRESS" />
</body>
</html>
但我正在寻找一个不使用任何服务器端调用(http://jsonip.appspot.com/?asp.net)和服务器端编码的解决方案。并且只使用JavaScript,这在移动设备上是可以的。有解决办法吗?
或者我需要遵循我检查过的给定示例吗?
我还需要设备的IP地址。
原来有一个PhoneGap插件可以从操作系统返回设备的IP地址。
参见https://build.phonegap.com/plugins/679和https://github.com/salbahra/NetworkInterfacePlugin/获取源代码。
我发布这篇文章是为了通过搜索引擎到达的人,因为我花了一段时间才找到这个插件。
$.ajax({
url: '//freegeoip.net/json/',
type: 'POST',
dataType: 'jsonp',
success: function(location) {
alert(location.ip);
}
});
$(document).ready( function() {
$.getJSON( "http://smart-ip.net/geoip-json?callback=?", function(data){
alert( data.host);
});
});
看看这篇文章:如何编辑本地ip地址
Function (promise) findIP是你正在寻找的