gpt4 book ai didi

c# - 如何测试依赖于 IP 地址的 ASP.NET 应用程序

转载 作者:可可西里 更新时间:2023-11-01 16:47:32 24 4
gpt4 key购买 nike

我编写了一个 ASP.NET 应用程序,在这个应用程序中我记录了请求 IP 地址。而且我还根据不同的 IP 范围提供不同的内容。

我的问题是,在我有限的测试环境中,我只有5台机器,每台机器只有1个IP地址,我想充分测试我的IP地址基于ASP.NET的功能,那么在我的情况下如何创建包含超出我的测试机器的 5 个 IP 地址的任意 IP 地址的 HTTP 请求?

感谢 .Net/C# 中的解决方案。但任何现有工具也很受欢迎。

EDIT1:我正在编写一个学校教育网络应用程序,它为来自不同城市的学生提供不同的内容。不同的城市有不同的类(class)/研讨会/培训,我想根据特定城市的学校分支机构的(代理)地址显示最相关的内容。

最佳答案

一种选择是更改您的逻辑以查看 IP 地址或 X-Forwarded-For header 。当请求通过代理服务器时,此 header 通常用于指示原始 IP 地址。虽然是的,你不需要在这里考虑代理,但这样做会给你一个非常非常简单的方法来测试你的逻辑。

我认为这将是您最快的途径,而不是尝试欺骗 IP 地址。

编辑

        Uri uriObj = new Uri("http://localhost");
HttpWebRequest request =
(HttpWebRequest)WebRequest.CreateDefault(uriObj);

request.Headers.Add("X-Forwarded-For", "125.125.125.125");

WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
Console.WriteLine(reader.ReadToEnd());

编辑

您需要将服务器端逻辑更改为:

    string ip = Request.Headers.Get("X-Forwarded-For");
if (string.IsNullOrEmpty(ip))
{
ip = Request.UserHostAddress;
}

这基本上是说,如果包含 header ,则使用该 header ,否则使用他们告诉我的 IP 地址。这样你的测试代码和真实用户都会被提取出来。

关于c# - 如何测试依赖于 IP 地址的 ASP.NET 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/797944/

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