- PR -

boolean isIpAddress(String str) を実装するには?

投票結果総投票数:40
1の方法 7 17.50%
2の方法 4 10.00%
3の方法 3 7.50%
4の方法 4 10.00%
5の方法 2 5.00%
6の方法 0 0.00%
7の方法 20 50.00%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2003-12-10 10:09
引用:

raccoonさんの書き込み (2003-12-09 23:07) より:
> 単に、^[0-9.]*$か^[:.0-9A-F]*$にマッチしなかったらホスト名と見なしてアウトにするだけでもいいような。

なるほど。
でくのぼうさんも仰っているように,「複合」させればいいんですね。

InetAddress.getByName()を使った場合,DNSまで探しにいっちゃうと
パフォーマンスがちょっと気になってたんですが,この方法で先に
ホスト名をはじいておけば大丈夫そうですね。


InetAddress.getByName()で例外が投げられる場合は、(IPv6のごく一部の場合を除いて)DNS解決しに行ってからなので、パフォーマンスの問題は解決しないと思います。
これはjava1.4の実装の場合ですけど、どのみち詳細実装に依存することになってしまうのでInetAddress.getByName()を使うのはあまりよくないでしょう。

よって、みんなが幸せになれる方法としては、sunに
boolean InetAddress#isIpAddress(String str)
を実装してもらうことかな
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-10 12:29
どうも、こんにちは。

今のところ変わらず「後輩」が人気のようですが
6番の選択肢は人気がありませんね。
案件満たせそうに無いジョーク交じりの選択肢ですから当たり前ですが。(笑)

それにしても、こうした形で他エンジニアの実装について
お聞きするのは、メソッド一個であっても身になりますね。

皆が忘れた頃にまた別の投票を作ってみようかな。

>Wataさん

方法5でやりましたか
IPv6 が絡むと殊更に面倒ですよねえ。

引用:

よって、みんなが幸せになれる方法としては、sunに
boolean InetAddress#isIpAddress(String str)
を実装してもらうことかな



標準APIでは、バリデーションの為のメソッドは
さほど充実してませんしね。
しかしひとたび充実させようと思うと、きりが無さそうでもあります。

Validation に特化したパターン集なんかがあれば便利だなあ。

スキルアップ/キャリアアップ(JOB@IT)