gpt4 book ai didi

c# - 如何检查两个不同的 URL 是否指向同一个资源?

转载 作者:行者123 更新时间:2023-11-30 16:33:29 25 4
gpt4 key购买 nike

假设我在名为“linux”的计算机上托管了一个网站,它属于两个地址分别为 192.168.1.1 和 10.1.1.1 的不同网络。当在“linux”上本地工作时,我可以通过以下 URL 访问该网站:

http://192.168.1.1/ http://10.1.1.1/ http://linux/ http://localhost/ http://127.0.0.1/

在网络“10.1.1.0/24”上的另一台机器上工作,我可以使用以下内容:

http://10.1.1.1/ http://linux/

但是在“192.168.1.0/24”上我只能使用:

http://192.168.1.1/ http://linux/

我正在开发一个比较 URL 的应用程序,在这个应用程序的上下文中,如果两个 URL 指向相同的资源,则它们是相等的。

有没有一种使用 C# 中的 URI 类进行这种比较的快速方法?

最佳答案

URI 类无法帮助您;它只能确定两个 URI 是否是相同的 URI,并且只有当它们具有相同的服务器名称/IP 地址时它们才是相同的 URI。

最好的选择是从两个 URL 下载资源,并通过检查是否相等并假设两个资源是相同的位序列(如果它们是相同的位序列)来查看它是否是相同的资源。

That isn't an option for me, the perfomance cost could be too great. I was hoping for something that could match the 'host address' part of the URI's, then all that was left to compare would be the relative path and port... – Thiado de Arruda

不幸的是,框架中没有任何东西可以开箱即用,因为没有可靠的方法将不同的主机名映射到同一主机,从而映射到同一资源。

您将不得不将主机映射到这些主机的各种别名,并自行查询它们。 URI.Host property 将为您获取相关 URI 的主机名,但您必须自己翻译它。框架中的任何内容都无法为您完成。

关于c# - 如何检查两个不同的 URL 是否指向同一个资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3143626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com