Javaを使用してAndroidプロジェクトでコンピューターのiPaddressを入手してください

StackOverflow https://stackoverflow.com/questions/5307992

質問

私は使っている ksoap2-android そして、Javaを使用してIPアドレスを取得する必要があります。そうすれば、毎回手動で入力する必要がないようにする必要があります。

IPアドレスが意味するのは、たとえば私がそうする場合です ipconfig コマンドシェルの使用:
接続固有のDNS接尾辞。 :
Link-Local IPv6アドレス。 。 。 。 。 :f0 :: ed2:e3bf:8206:44%13
IPv4アドレス。 。 。 。 。 。 。 。 。 。 。 :192.168.1.107 < - これ
サブネットマスク 。 。 。 。 。 。 。 。 。 。 。 :255.255.255.0
デフォルトゲートウェイ 。 。 。 。 。 。 。 。 。 :192.168.1.1

問題は、Androidアプリを開発していることであり、エミュレータはマシンとは異なるタイプのIPを持っています。
マシンのIPを取得する必要がありますが、これはどのように行われますか?

どうもありがとう

役に立ちましたか?

解決

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(tag, ex.toString());
        }
        return "";
    }

他のヒント

AndroidデバイスのiPaddressを取得するには、このコードを使用します。

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = intToIp(ipAddress);

public String intToIp(int i) {

   return ((i >> 24 ) & 0xFF ) + "." +
               ((i >> 16 ) & 0xFF) + "." +
               ((i >> 8 ) & 0xFF) + "." +
               ( i & 0xFF) ;
}

このリンクを試してください

http://www.droidnova.com/get-the-ip-address-of-your-device,304.html

また、このコマンドを試すことができます ADBシェルNetCFG

InetAddress iA=InetAddress.getLocalHost();
System.out.println(iA.getHostAddress());

参照してください

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top