原来设计时,只是用IP测试,没有问题,后来因为需要用到向日葵内网穿透,免费申请了一个域名,像一串乱码样的域名,然后就需要解析这个域名。
{BANNED}最佳初想着看看有没有合适的系统函数直接解决,没找到,然后就想着自己写个字符串检查函数,看看是域名还是ip,觉得麻烦,{BANNED}最佳后找了一种很不优雅但可以用的方法。
try
{
Address = IPAddress.Parse(HostName);
}
catch
{
try
{
IPHostEntry ipHostInfo = Dns.GetHostEntry(HostName);
Address = ipHostInfo.AddressList[0];
}
catch (Exception)
{
return false;
}
}
HostName就是输入的一串IP或者域名,先调用IPAddress.Parse(HostName);
如果是个IP地址字符串,他就会正常返回,然后Address里面就填充了一个IP地址,如果原来是个域名字符串,他就会出现异常,然后走catch分支, Dns.GetHostEntry(HostName);就是负责解析域名,给出一个IP地址,如果这个域名是个错误域名,就会走第二个catch分支,返回false,外围判断下就可以了。
方法比较粗暴,我觉得用catch走正常业务流的都比较粗暴,但好在简单好用,讲究用吧
阅读(257) | 评论(0) | 转发(0) |