[解決済み] C#で文字列が有効なIPv4またはIPv6アドレスであるかどうかを判断するにはどうすればよいですか?
2023-06-12 08:53:59
質問
私は正規表現が 危険 というのは、IP アドレスにはさまざまな形式があるためです。
C や C++ でも同様の質問を見たことがありますが、それらは C# には存在しない関数で解決されました。 inet_ntop()
私が見つけた .NET ソリューションは、標準の "ddd.ddd.ddd" フォームを処理するだけです。何か提案はありますか?
どのように解決するのですか?
これを使って解析してみることができます。
IPAddress.TryParse
次に
AddressFamily
という
IPv4ではSystem.Net.Sockets.AddressFamily.InterNetwork、IPv6ではSystem.Net.Sockets.AddressFamily.InterNetworkV6を返します。
EDIT: サンプルコードです。必要に応じて変更してください。
string input = "your IP address goes here";
IPAddress address;
if (IPAddress.TryParse(input, out address))
{
switch (address.AddressFamily)
{
case System.Net.Sockets.AddressFamily.InterNetwork:
// we have IPv4
break;
case System.Net.Sockets.AddressFamily.InterNetworkV6:
// we have IPv6
break;
default:
// umm... yeah... I'm going to need to take your red packet and...
break;
}
}
関連
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み] 2つのリストを結合する
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] base64文字列をエンコード、デコードするにはどうしたらいいですか?
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] .NETでフォーマット文字列のブレース(中括弧)をエスケープする方法
-
[解決済み] UTF-8 byte[]を文字列に変換する方法
-
[解決済み] IPv6アドレスのテキスト表現の最大長?
-
[解決済み】文字列の中にある文字列(実際はchar)の出現回数を数えるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み] 関数を終了するには?
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である