C# 使用静态方法从字符串解析IP地址
是否有一种静态方法可以用来解析字符串以检查它是否是IP地址,而不必初始化新的C# 使用静态方法从字符串解析IP地址,c#,.net,parsing,ip-address,system.net,C#,.net,Parsing,Ip Address,System.net,是否有一种静态方法可以用来解析字符串以检查它是否是IP地址,而不必初始化新的System.Net.IPAddress实例 这就是我想要达到的目标 System.Net.IPAddress throwawayIpAddress = new System.Net.IPAddress(Encoding.ASCII.GetBytes("127.0.0.1")); System.Net.IPAddress.TryParse(baseUri.Host, out throwawayIpAddress);
System.Net.IPAddress
实例
这就是我想要达到的目标
System.Net.IPAddress throwawayIpAddress = new System.Net.IPAddress(Encoding.ASCII.GetBytes("127.0.0.1"));
System.Net.IPAddress.TryParse(baseUri.Host, out throwawayIpAddress);
baseUri
是一个Uri
变量,Host
是一个字符串
。我正在寻找更简单的东西,例如:
System.Net.IPAddress.TryParse(baseUri.Host, out new System.Net.IPAddress(Encoding.ASCII.GetBytes("127.0.0.1"));
由于TryParse()
方法需要String
和out-IPAddress
引用,因此我无法直接传递null
或一次性对象
感谢您提供的更简单的方法来解析字符串以测试它是否是IP地址 IPAddress.TryParse需要和out参数。该参数不必初始化。
public static bool IsValidIpAddress(this string s)
{
IPAddress dummy;
return IPAddress.TryParse(s, out dummy);
}
对于您的代码,它可以是:
System.Net.IPAddress throwawayIpAddress; //No need to initialize it
if(System.Net.IPAddress.TryParse(baseUri.Host, out throwawayIpAddress))
{
//valid IP address
}
{
//Invalid IP address
}
如果解析成功,那么您的对象
throwayIpaddress
将具有有效的IP地址,您可以在代码中进一步使用该地址,或者根据需要忽略它 IPAddress.TryParse需要和out参数。该参数不必初始化。
对于您的代码,它可以是:
System.Net.IPAddress throwawayIpAddress; //No need to initialize it
if(System.Net.IPAddress.TryParse(baseUri.Host, out throwawayIpAddress))
{
//valid IP address
}
{
//Invalid IP address
}
如果解析成功,那么您的对象throwayIpaddress
将具有有效的IP地址,您可以在代码中进一步使用该地址,或者根据需要忽略它 您可以使用regex
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]?)$")
你可以使用正则表达式
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]?)$")
语言错误-鉴于ThrowayIpAddress用作OUT,因此无需对其进行初始化。这实际上应该引起一些警告。只需将其设置为“null”,而不是新的…IpAddress。它是一个OUT参数,无论如何都会被覆盖掉。我敢肯定,如果使用已初始化的变量作为out参数,您会收到警告甚至错误。语言错误-鉴于ThrowayIpAddress用作out,因此无需初始化它。这实际上应该引起一些警告。只需将其设置为“null”,而不是新的…IpAddress。它是一个OUT参数,无论如何都会被覆盖掉。不过,我很肯定,如果使用已初始化的变量作为out参数,您会收到警告甚至错误。