No.2ベストアンサー
- 回答日時:
LANのルータがすべての情報を持っていますが、最近はセキュリティを固めて内部からも簡単にアクセスできないことが多いです。
ということは、外部サイトに調べてもらう方法しかありませんから、こんなプログラムをよく使います(全角スペースは半角スペースに変えてからコンパイルしてください):--------------
/* 注意: whatismyipのサイトは、十分な時間間隔をあけて再接続しないと、サーバの過負荷で長時間無反応になることがあります。*/
import java.net.*;
import java.io.*;
public class FindExternalIP {
public static void main(String[] args) throws Exception {
String line = "--null--";
//無料サービスサイト: http://whatismyip.com/
URL url = new URL("http://www.whatismyip.com/automation/n09230945.a …
InputStreamReader in = new InputStreamReader(url.openStream());
BufferedReader br = new BufferedReader(in);
line = br.readLine();
System.out.println(line);
//上と類似のやり方, スイスのジュネーブのCERNのtraceroute Webサーバ
int i = 0;
url = new URL("http://iepmbw.cern.ch/cgi-bin/traceroute.pl");
in = new InputStreamReader(url.openStream());
br = new BufferedReader(in);
while ((line = br.readLine()) != null){
if ((i = line.indexOf("Your host is:")) != -1){
line = line.substring(i + 14, i + 24);
break;
}
}
System.out.println(line);
}
}
-----------------------------------
やはり外部にアクセスしないと無理ですかね
この方法は一応考えてはいたのですが・・・
ところでこのコードをコンパイルすると
1つ目のIPはすべて出ますが2行目のIPがたとえば1.2.3.4だとすると4の部分がないのですが・・・
このサーバの仕様ですか?
No.3
- 回答日時:
substringだと工夫しないとIPの文字数によって結果が変わると考えますのでやめておきます
やはりPerlで表示させてダウンロードすることにしました
やっと問題が解決しました
回答ありがとうございました
No.1
- 回答日時:
mamuru77さんのネットワーク環境がわからないので、
何とも答え難いです。
LANがどのような構成になっていて、どのようにWANに接続しているか、
説明が必要でしょう。
また、「LAN内部のアドレスでしか取得できません」とありますが、
どのようなコードでしょうか。
差し障りが無ければ、提示した方が良い回答を得られると思います。
この回答への補足
構成はとりあえずルータをつないでいます
LANの中のIPはそれが割り当てています
コードは
import java.net.*;
InetAddress.getLocalHost().getHostAddress().toString()
これで得られるStringがIPになっているのですがLANの内部のアドレスを返します
外部のアドレスはどうやっても返せそうにないのですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 固定IP MACアドレスはLAN内で相手を特定するアドレスですか? PCから監視カメラを閲覧するときに、セグメ 3 2022/07/23 09:04
- ルーター・ネットワーク機器 10Gbpsの恩恵 5 2022/11/16 15:48
- その他(コンピューター・テクノロジー) batファイルでPCの設定内容やプロパティーを取得したいのですが、コマンド1個で1ファイルとなるのを 2 2022/04/27 15:27
- FTTH・光回線 グローバルIPアドレスの変更について 1 2022/04/23 05:32
- その他(インターネット接続・インフラ) アプリ利用者を特定し、裁判に 2 2022/06/09 21:43
- ツイキャス ツイキャスでアカウントロックされたとき、IPアドレスが自動取得で変更されても、PC端末が特定される? 1 2022/10/15 15:49
- Wi-Fi・無線LAN 無線ルーターのIPアドレスは、iPhoneのように簡単に変更できる??? 2 2022/04/02 19:00
- ネットワーク 外部からローカルIPアドレスはわかる? 3 2022/07/05 00:53
- Windows 10 インストールしたてのVirtualBoxの仮想マシンにDHCPで割り振られるIPアドレスにつきまして 1 2023/05/03 14:46
- FTTH・光回線 光回線、中継器を導入した際の端末側のローカルipアドレスについて 3 2023/03/11 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力文字列が数字かどうかの判別
-
以下のJAVAプログラムでご質問...
-
java.lang.NoClassDefFoundErro...
-
equalsの逆
-
Java初心者です。csvファイルの...
-
yyyymmddからyyyy/mm/d...
-
JavamailでGmailのお気に入りフ...
-
InputStream.read()でタイムア...
-
javaでCSVの中身から最大値を表...
-
JSPからパラメータを取得してサ...
-
Javaの質問です。テキストファ...
-
java シンボルが見つかりません
-
ファイル読み込みで
-
Java int sum = 0は必要ですか?
-
java連結
-
Log4jで機能毎に別ファイルへ出...
-
このプログラミング誰か教えて...
-
C言語のポインターに関する警告
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
csv出力について
-
九九を横に表示する。
-
InputStream.read()でタイムア...
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
javaのfor文が機能してないみた...
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
以下のJAVAプログラムでご質問...
-
Class.forNameでエラーになる
-
ソケットを使ったサーバとクラ...
-
テキストファイルにおいて任意...
-
テキストファイルの任意の文字...
-
JAVAでエラーがでる。
-
Inputstreamについて
-
ObjectInputStreamとStreamCorr...
-
Windowsでの標準入力の終了の仕方
-
[JAVA]エラーが解決できません。
おすすめ情報