您好我在C#中构建类似于webspider的东西.在我的研究中,我遇到了一个问题,我需要阻止链接是内部还是外部,入站或出站.所以我需要创建一个功能来为我做这项工作.所以我提出了以下功能,但我不确定它是否是最好的algorythm以完成该任务.所以我希望你对这个问题有所了解.
我认为在链接前没有http://或https://的链接是内部的,如果我有一个域http://www.blahblah.com那么像test这样的链接应该仍然是内部的,尽管事实是它在前面有http://,但像http://www.somethingelse.com/?var1=http://www.blahblah.com/test这样的链接是外部的,我只检查第一个字母.
private Boolean checklinkifinternal(String link)
{
Boolean isinternal = false;
if (link.IndexOf("http://") == 0 || link.IndexOf("https://") == 0)
{
//Then probably external
if (link.IndexOf("http://" + UrlName) == 0 || link.IndexOf("https://" + UrlName) == 0 || link.IndexOf("http://www." + UrlName) == 0 || link.IndexOf("https://www." + UrlName) == 0)
{
isinternal = true;
}
}
else
{
isinternal = true;
}
return isinternal;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
Uri.Compare(new Uri("google.de"), new Uri("Google.de"), UriComponents.Host, UriFormat.SafeUnescaped, StringComparison.CurrentCulture);
Run Code Online (Sandbox Code Playgroud)
这就是我从头顶说的:)