
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaでCSVの中身から最大値を表...
-
yyyymmddからyyyy/mm/d...
-
csv出力について
-
ソケットを使ったサーバとクラ...
-
オブジェクトの中のプロパティ...
-
ORA-01858: 数値を指定する箇所...
-
JSPやサーブレットでSystem.out...
-
System.err. printlnとSystem.o...
-
C#で動的配列Listの中身をListB...
-
IF関数でEmpty値を設定する方法。
-
変数を動的に利用するには?
-
C#の質問
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
-
Path型をString型へ変換する(Java)
-
JSPでImportエラーになります
-
[至急]Project Euler:#17Number...
-
パソコンキーボードで時分秒を...
-
C# ListBoxのインデックスの値...
-
配列にnullを代入すると、null...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
csv出力について
-
Javaでデータに登録する度にID...
-
[JAVA]エラーが解決できません。
-
Class.forNameでエラーになる
-
Java int sum = 0は必要ですか?
-
Javaの質問です。テキストファ...
-
javaプログラミングの質問です。
-
equalsの逆
-
ファイル読込みにおける改行表...
-
九九を横に表示する。
-
Servletでテキストボックスに入...
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
javaのfor文が機能してないみた...
-
テキストファイルから空白行をよむ
-
文字列について(続き)
-
Pleiades4.4でVectorの使用
-
printfを使って出力
-
Windowsでの標準入力の終了の仕方
おすすめ情報