2017-10-22 3 views
1

私のUNIXのVMで、私は/ etc/hostsに次のエントリを与えることができます。 ABC_XYZ_HOSTNAME.abc.com 15.115.112。***その後、私は "ping ABC_XYZ_HOSTNAME.abc.com"を正常に実行できます。しかし、私のコードは、アンダースコアはホスト名でサポートされていますか?

になりました。
InetAddresses.forString(ip) 

例外を除き、IllegalArgumentExceptionはIP文字列リテラルでは無効です。

質問には、アンダースコアがサポートされているホスト名などがありますか?

+0

この投稿は、アンダースコアが許可されていないことを示唆して使用する必要があります。 https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address –

答えて

2

InetAddresses.forStringでDNS名を使用することはできません。このメソッドのjavadocには、次のような状態があります。

指定された文字列表現を持つInetAddressを返します。

これは意図的にすべてのネームサービスの検索(DNSなしなど)を回避します。

パラメータ: ipString - IPv4またはIPv6の文字列リテラルを含む文字列。 "192.168.0.1"または "2001:db8 :: 1"

DNS名は有効な値ではありません。

DNS lookup of your addressのためには、

InetAddress.getByName(host) 
関連する問題