如何检查url是否在同一主机上

本文关键字:主机 是否 url 何检查 检查 | 更新日期: 2023-09-27 18:22:26

我正在尝试解析一个html页面(使用html敏捷包)并提取所有图像链接。现在我想看看链接是否在同一台主机上。以下代码是否涵盖了所有场景?有什么更好的解决方案可以实现这一点吗?

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//img/@src"))
{
    var link = node.Attributes["src"].Value.Trim();
    if (link.StartsWith("http", true, null) || link.StartsWith("//"))
        //the link is not on the same host
}

如何检查url是否在同一主机上

我将使用以下正则表达式:

if(Regex.IsMatch(link, @"^('w+:)*'/'/"))
{
   // The link is not on the same host
}

这适用于任何协议,并且不会匹配以http开头的本地目录或文件,例如注释

中的@AlexK示例