0

以下のようなIPアドレスを取得する関数を使用しました:

public static final String IPV4_REGEX = "\\A(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}\\z";
public static 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()&&(inetAddress.getHostAddress().toString().matches(IPV4_REGEX))) {
                    return /*inetAddress.getHostName()+"~|~"+*/inetAddress.getHostAddress().toString();
                }

            }
        }
    } catch (SocketException ex) {
        ex.printStackTrace();
    }
    return null;
}   

appropriateしかし、最初のIP アドレスを取得していることに気付きました。SIMカードを挿入するまでは問題なく動作します。その後、ローカル WiFi ではなく、モバイルの IP を取得します。それで、この状況を除外する方法を知りたいですか?WiFiルーターのローカルIPだけ取得したい。どうもありがとう。

4

1 に答える 1