- - PR -
C#でipアドレスの処理
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-10 11:52
入力したipアドレス(10.50.1.1のような)を
ipアドレスかどうか判定する方法がわかりません。 数値ではないので、比較ができないようなのですが、 0000・・・・〜1111・・・・の間とか、 0.0.0.0〜255.255.255.255とか考えてみたのですが、 どうすればいいのでしょうか。 | ||||
|
投稿日時: 2005-11-10 12:01
どこまで検証しますか? (グローバル IP かどうかとか判別しない?) 各アドレスが、0 〜 255 までなら有効とするのであれば、 4 つに分割して検証するだけだと思いますが。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-11-10 12:10
何をどう比較したいのです?
正規表現との比較で、必要な書式を満たしているか判定する方法もあるでしょう。この場合は文字列として比較すれば良いですよね。 有効なIPアドレスか否か判定したいだけなら、IPAddress.Parseで十分でしょう。不正なIPアドレスなら例外が発生するはずです。 IPアドレス同士を比較したいなら、IPAddress.Equalsを使えばよいでしょう。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||
|
投稿日時: 2005-11-10 12:51
1 回目に起きる例外で遅くなるのが難点ですよね。 .NET Framework 2.0 では、すべてに TryParse が実装されるようで嬉しいです。 IPAddress.TryParse メソッド やはり、1.1 では正規表現か、ピリオドから分割して検証メソッドを書くかになるでしょうね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-11-10 13:03
IPAddress.Parseを使用しています。
IPAddress ipAddress=IPAddress.Parse(入力テキスト); で入力テキストがipアドレスじゃないと止まってしまいます。 例外処理を入れればいいのでしょうが、 ipAddressに入ったデータの比較方法がわかりません。 ipAddressに入ったデータは、表示すると10.50.1.1とかなっていますが、 ifとかで比較する場合に文字列なのでしょうか。 文字として分割して比較するのでしょうか。 |
1