如何使用PhoneGap和JavaScript获得IP地址,而不使用服务器端代码



我正在为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是你正在寻找的

相关内容

最新更新