6

ksoap2-androidを使用していますが、Javaを使用してIPアドレスを取得する必要があるため、毎回手動で入力する必要はありません。

IPアドレスとは、たとえば、コマンドシェルを使用してipconfig
を実行する場合: 接続固有のDNSサフィックスです。:
リンクローカルIPv6アドレス。。。。。:f0 :: ed2:e3bf:8206:44%13IPv4
アドレス。。。。。。。。。。。:192.168.1.107 <-この1
つのサブネットマスク。。。。。。。。。。。:255.255.255.0
デフォルトゲートウェイ。。。。。。。。。:192.168.1.1

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

どうもありがとう

4

4 に答える 4

8
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 "";
    }
于 2011-03-15T05:53:40.763 に答える
4

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

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) ;
}
于 2011-03-15T06:00:18.747 に答える
2

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

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

また、このコマンドを試すことができますadb shell netcfg

于 2011-03-15T05:53:20.830 に答える
2
InetAddress iA=InetAddress.getLocalHost();
System.out.println(iA.getHostAddress());

関連項目

于 2011-03-15T05:55:23.370 に答える