2012-11-18 12 views
5

デバイスの無線が接続されている場合、おそらくルータ上で動作しているDHCPによってデバイスにLAN IPアドレスが割り当てられていると仮定します。どのようにアンドロイドデバイスのLANのIPアドレスを見つけるには?

どのようにLAN IPアドレス(外付けIPではなく)がWi-Fiインターフェイス上にあるのでしょうか?

おかげで、

+1

**「デバイスの無線LANが接続されている場合は、私はデバイスがルータ上で動作しているDHCPによっておそらく割り当てられたLAN IPアドレスを持っていると仮定します。 "** - 必ずしも。 ariefbayuからの回答は、さまざまなネットワークインターフェースのIPアドレスを見つけるのに役立ちますが、wifiインターフェースのIPアドレスはLANからのものであると想定できません。さまざまな国で「ワイドエリア」のWi-Fiサービスがあります。つまり、実際のWi-Fi LANと通信する必要がある場合、ユーザーのデバイスが「ワイドエリア」Wi-Fiネットワークに接続されているとソフトウェアが動作しない可能性があります。 – Squonk

答えて

7

NetworkInterfaceがお手伝いします:

String ipAddress = null; 
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()) { 
       ipAddress = inetAddress.getHostAddress().toString(); 
      } 
     } 
    } 
} catch (SocketException ex) {} 
+1

3G/4Gに接続している場合、これもWANアドレスを返しませんか? – matcauthon

関連する問題