0

System.Net.IPAddress新しいインスタンスを初期化する代わりに、文字列を解析してIPアドレスかどうかを確認するために使用できる静的メソッドはありますか?

これが私が達成しようとしていることです

System.Net.IPAddress throwawayIpAddress = new System.Net.IPAddress(Encoding.ASCII.GetBytes("127.0.0.1"));

System.Net.IPAddress.TryParse(baseUri.Host, out throwawayIpAddress);

baseUriUri変数であり、Hoststringです。私は次のようなもっと簡単なものを探しています:

System.Net.IPAddress.TryParse(baseUri.Host, out  new System.Net.IPAddress(Encoding.ASCII.GetBytes("127.0.0.1"));

メソッドがと参照をTryParse()期待しているという事実のために、オブジェクトを直接渡すことも、使い捨てにすることもできません。Stringout IPAddressnull

文字列を解析してIPアドレスかどうかをテストする簡単な方法についてのアドバイスに感謝します。

4

3 に答える 3

4
public static bool IsValidIpAddress(this string s)
{
    IPAddress dummy;
    return IPAddress.TryParse(s, out dummy);
}
于 2012-12-26T08:36:27.693 に答える
1

IPAddress.TryParseは、パラメーターを期待して出力します。そのパラメータを初期化する必要はありません。コードの場合、次のようになります。

System.Net.IPAddress throwawayIpAddress; //No need to initialize it
if(System.Net.IPAddress.TryParse(baseUri.Host, out throwawayIpAddress))
{
//valid IP address
}
{
//Invalid IP address
}

解析が成功すると、オブジェクトthrowawayIpAddressは有効なIPアドレスを持ちます。コードでさらに使用するか、必要に応じて無視することができます。

于 2012-12-26T08:43:19.193 に答える
1

正規表現を使用できます

var isValidIP = Regex.IsMatch(stringValue, @"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$")
于 2012-12-26T08:47:07.393 に答える