Android IP抓取

时间:2012-02-02 07:27:29

标签: android

我们正在使用android 2.3.3作为项目进行聊天应用程序,当我们打开应用程序时,我们需要通过代码自动获取IP地址并将其发送到具有status的服务器。如何才能完成。我们将非常感谢有关此主题的任何帮助。 提前致谢

2 个答案:

答案 0 :(得分:1)

看看Get IP address

不要忘记添加行

<uses-permission android:name="android.permission.INTERNET" />

到清单

答案 1 :(得分:1)

为什么要将IP发送到服务器?服务器可以在客户端连接时获取IP?

通常,客户端必须知道服务器的IP并连接到它。在某些情况下,当它到达服务器(NAT防火墙,代理,多个网络设备,如3G,wifi等)时,可能很难或无法确定它将获得什么IP。

列出您可以在Android设备上注册的所有IP地址(代码来自http://www.droidnova.com/get-the-ip-address-of-your-device,304.html):

public String getLocalIpAddress() {
    try {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(LOG_TAG, ex.toString());
    }
    return null;
}

我建议你阅读客户端/服务器架构。关于这个主题有几个指南。

http://pguides.net/java/tcp-client-server-chat

http://pirate.shu.edu/~wachsmut/Teaching/CSAS2214/Virtual/Lectures/chat-client-server.html