如何在不使用服务器端代码的情况下使用PhoneGap和JavaScript获取IP地址

时间:2013-06-04 10:35:55

标签: javascript jquery jquery-mobile cordova

我正在jQuery MobilePhoneGap为iPhone和Android工作!!

在我的应用程序中,我需要查找移动设备的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。有解决方案吗?

或者我是否需要按照我检查的给定示例进行操作?

4 个答案:

答案 0 :(得分:2)

我也需要设备IP地址。

事实证明,有一个PhoneGap插件可以从操作系统返回设备的IP地址。

有关源代码,请参阅https://build.phonegap.com/plugins/679https://github.com/salbahra/NetworkInterfacePlugin/

我是通过搜索引擎到达的人发布此内容,因为我花了一段时间才找到该插件。

答案 1 :(得分:0)

$(document).ready( function() { 
    $.getJSON( "http://smart-ip.net/geoip-json?callback=?", function(data){
        alert( data.host); 
    });
});

答案 2 :(得分:0)

    $.ajax({
        url: '//freegeoip.net/json/',
        type: 'POST',
        dataType: 'jsonp',
        success: function(location) {
            alert(location.ip);
        }
    });

这也将支持https网站。

答案 3 :(得分:0)

看看这篇文章: how to edit local ip Address

功能(proimse)findIP就是你要找的。