私はルータを持っていて、私はこのコマンドで私のIPアドレスを尋ねるとき: InetAddress.getLocalHost()。getHostAddress(); 私は私の内部IPアドレスを得ました。 ウェブ上でwww.whatismyip.comページに入ると、別のIPアドレスが得られ、それが私の実際のアドレスです。どのように私の外側のIPアドレスをJavaで質問する
私はJavaでこの実際のIPアドレスをどのように尋ねますか?
ありがとうございました...
私はルータを持っていて、私はこのコマンドで私のIPアドレスを尋ねるとき: InetAddress.getLocalHost()。getHostAddress(); 私は私の内部IPアドレスを得ました。 ウェブ上でwww.whatismyip.comページに入ると、別のIPアドレスが得られ、それが私の実際のアドレスです。どのように私の外側のIPアドレスをJavaで質問する
私はJavaでこの実際のIPアドレスをどのように尋ねますか?
ありがとうございました...
多分このようなごちゃごちゃ?
import org.apache.commons.io.IOUtils;
import java.io.BufferedInputStream;
import java.net.HttpURLConnection;
import java.net.URL;
URL url = new URL("http://myexternalip.com/raw");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
String externalIP = IOUtils.toString(in, "UTF-8");
こんにちは、 ここからです:org.apache.commons.io.IOUtils; ? これは私のJavaでは不明です。 –
「プロジェクト構造」を開き、モジュール(Android Studioのアプリケーションなど)を選択し、「依存関係」を選択してプラスボタンを押します。ライブラリの依存関係を選択します。検索フィールドに「org.apache.commons.io」と入力し、「org.apache.directory.studio:org.apache.commons.io:2.4」またはこのようなsmthを追加すると、通常はリストの最初の部分になります。 –
私は同じ質問をしています。なぜ外部IPが必要ですか? NATと他の何かのために、サーバーなしでエンドツーエンドのメッセージを送ることはできません。 –
内部IPアドレスとは、ローカルホストを意味しますか? 127.0.0.1 –
私はあなたができるとは思わない。その情報がアプリケーションに明示的に与えられていない限り、プロキシやゲートウェイを使用していることを知る方法はありません。あなたの "本当の" IPアドレスが何であるか気にしないようにコードを設計するのが最善です。 – markspace
http://checkip.amazonaws.com/ – JediBurrell