1

Android モバイルで、電話からクリックして、設定 -> ワイヤレス コントロール -> Wifi 設定を表示し、接続しているネットワークをタップしました。ネットワークの状態、レベル、速度、信号強度、IP アドレス、およびセキュリティの種類を示すダイアログがポップアップ表示されました。それで、ネットワークのIPアドレスを取得しました。

入力として (モバイルから取得した既知の IP アドレス) を指定して、他の Wi-Fi 対応デバイスの IP アドレスを取得するにはどうすればよいですか?

実際に明確にするために、特定の既知の IP アドレスを入力として与える方法と、Android 2.3 で同じネットワークにプログラムで接続されている Wifi 対応デバイスの他の不明な IP アドレスを取得できる必要がありますか?

4

4 に答える 4

6

getIpAddress()IPアドレスを取得するには、チェックインできますWifiInfo

疑似コード、

 WifiManager mWifiManager = (WifiManager) 
                                     getSystemService(Context.WIFI_SERVICE);
 WifiInfo mWifiInfo = mWifiManager.getConnectionInfo();
 Log.e("IP in Mask Integer", mWifiInfo.getIpAddress()+"");
 Log.e("IP Address", intToIP(mWifiInfo.getIpAddress())+"");

public String intToIP(int i) {
       return (( i & 0xFF)+ "."+((i >> 8 ) & 0xFF)+
                          "."+((i >> 16 ) & 0xFF)+"."+((i >> 24 ) & 0xFF));
} 
于 2012-08-24T06:45:18.993 に答える
0

同じネットワーク内の他のデバイスを見つけるには、そのネットワークをスキャンする必要があります。

スキャンとは、サブネット内の可能な IP を見つけることを意味し (IP アドレスとサブネット マスクを使用して、可能な範囲を見つけることができます。通常、ホーム ルーターの場合は xxx1 ~ xxx254 の間です)、これらの IP を繰り返し処理し、各 IP に対して PING を実行するか、試行します。そのIPを使用しているアクティブなデバイスがあることを意味する応答が得られるまで、一部/すべてのポートにTCP/UDPで接続します。ただし、まったく応答がない場合は、その IP を使用しているデバイスがないか、デバイスがこれらの要求をフィルタリングしている (ファイアウォールがパッケージをドロップしている) か、単にそのデバイスにリッスン サービスがない可能性があります。

この詳細については、nmap などのよく知られたツールを確認してください。

于 2014-12-26T16:39:39.357 に答える
0
 WifiManager myWifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);

       WifiInfo myWifiInfo = myWifiManager.getConnectionInfo();
       int myIp = myWifiInfo.getIpAddress();

textWifiManager.setText(myWifiManager.toString());
       textWifiInfo.setText(myWifiInfo.toString());

       int intMyIp3 = myIp/0x1000000;
       int intMyIp3mod = myIp%0x1000000;

       int intMyIp2 = intMyIp3mod/0x10000;
       int intMyIp2mod = intMyIp3mod%0x10000;

       int intMyIp1 = intMyIp2mod/0x100;
       int intMyIp0 = intMyIp2mod%0x100;

       textVIewIp.setText(String.valueOf(intMyIp0)
         + "." + String.valueOf(intMyIp1)
         + "." + String.valueOf(intMyIp2)
         + "." + String.valueOf(intMyIp3)
         );

また、AndroidManifest.xml を変更して、android.permission.ACCESS_WIFI_STATE のアクセス許可を付与する必要があります。

于 2015-01-04T13:42:22.573 に答える