Android PhoneのIPアドレスを取得したいのですが、このためにInetAddressを試しましたが、エミュレーターでIPアドレス127.0.0.1を取得しました。実際のIPアドレスを取得するにはどうすればよいですか。次に、WebサーバーからのIPアドレスを使用してそのAndroidモバイルに連絡し、その位置などの情報を尋ねたいと思います。たとえば、Phone1がPhone2の情報を必要とし、Phone1がWebサーバーに接続し、Webサーバーが保存されたIPアドレスを使用してphone2に接続し、次にphone2がWebサーバーへの場所を応答し、Webサーバーがphone1に応答するとします。
android - AndroidフォンのIPアドレスを取得したいのですが、WebサーバーからそのAndroidフォンに連絡するにはどうすればよいですか?そのIPアドレスを使用して情報を取得しますか?
質問する
1028 次
3 に答える
0
サーバーに電話の位置を尋ねさせる代わりに、別の方法で考えてみてください。
電話で実行され、定期的にその位置をサーバーに送信するアプリを作成します。次に、電話2が電話1の位置を知りたい場合、サーバーから最新の既知の位置を取得します。
于 2012-06-06T09:07:04.187 に答える
0
ここにあります:http://www.droidnova.com/get-the-ip-address-of-your-device,304.html
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(LOG_TAG, ex.toString());
}
return null;
}
したがって、このメソッドが null を返す場合、利用可能な接続はありません。メソッドが文字列を返す場合、この文字列には、3G または WiFi に関係なく、デバイスが現在使用している IP アドレスが含まれます。
于 2012-06-06T09:20:47.547 に答える
0
IPV4 を取得するためのこのコード:
private String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress in`enter code here`etAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
if (inetAddress instanceof Inet4Address) {
return ((Inet4Address)inetAddress).getHostAddress().toString();
}
}
}
}
} catch (SocketException ex) {
Log.e("ServerActivity", ex.toString());
}
return null;
}
于 2014-04-02T12:44:45.860 に答える