電子書籍の厳選無料作品が豊富!

社内でeclipse で java、springを使って開発している初心者です。

サーブレットでクライアントのホスト名を取得したいのですが、実現できず悩んでいます。

下記のソースの場合、hostnameはIPアドレスとなってしまい、ホスト名が取得できません。

社内は、DNSサーバがありますが、名前解決がうまくできていないように思うのですが、
どうすれば取得できるようになるのでしょうか。

try {
InetAddress ia = InetAddress.getByName(request.getRemoteHost());
String hostname = ia.getHostName();
System.out.println("hostname:" + hostname);

} catch (UnknownHostException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}

サーバのserver.xmlの Connector 部分に enableLookups="true" を追加してみたりもしましたが、駄目でした。

ご教授いただければ幸いです。

A 回答 (2件)

>社内ではIPアドレスは固定よりもDHCPが多く、


>そうなるとPTRレコードを作るのも難しいようです。

DHCPとDNSを連動させる所謂 DDNS では普通出来ます。
設定次第です

>コマンドプロンプトでは、nbtstat -a で
>IPアドレスからPC名が判るので、
>なんとかjavaでもできないものかと思ったのですが。

nbtstatは NETBIOS over tcp/ip の状態を見るためのコマンドで
これの表示するコンピュータ名は NETBIOS名です。

NETBIOS名はローカルネットワーク内で自動的に決まる
ブラウジング用のホストに、各コンピュータからの
通知が収集されまとめられます。コマンドはこの情報を
見に行くだけでDNSは用いません。
WindowsのLAN特有の機能です。
    • good
    • 0
この回答へのお礼

更なる回答、ありがとうございます!

前回の回答に誤りがありました。すみません。
既に、DNSに逆引きレコード(逆引き参照ゾーンの設定)がありました。
そうなると、なぜホスト名が返ってこないのか、また行き詰っています。。。

お礼日時:2016/06/06 09:22

DNSに逆引レコード(PTRレコード)がないだけでは?



サーバではないホストは普通PTRは設定しないので
逆引き出来ません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

社内ではIPアドレスは固定よりもDHCPが多く、そうなるとPTRレコードを作るのも難しいようです。
コマンドプロンプトでは、nbtstat -a でIPアドレスからPC名が判るので、なんとかjavaでもできないものかと思ったのですが。。

お礼日時:2016/06/03 09:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!