C# dotnet核心http请求集源ip
我有DotnetCore2.1应用程序,它必须使用多个源ip地址发送web请求 我经常在谷歌上搜索,试图找到解决办法。最受欢迎的是 但它不适用于dotnetcore,并且永远不会调用BindIPEndPointCallback 我还发现了包装curl功能的CurlHandler类 curl本身有用于设置源IP的--interface选项,但CurlHandler类没有任何公共方法来设置CurlOptions 所以我唯一能解决这个问题的方法就是使用原始套接字,但我不喜欢它 有没有设置web请求源ip的简单解决方案C# dotnet核心http请求集源ip,c#,linux,curl,.net-core,C#,Linux,Curl,.net Core,我有DotnetCore2.1应用程序,它必须使用多个源ip地址发送web请求 我经常在谷歌上搜索,试图找到解决办法。最受欢迎的是 但它不适用于dotnetcore,并且永远不会调用BindIPEndPointCallback 我还发现了包装curl功能的CurlHandler类 curl本身有用于设置源IP的--interface选项,但CurlHandler类没有任何公共方法来设置CurlOptions 所以我唯一能解决这个问题的方法就是使用原始套接字,但我不喜欢它 有没有设置web请求
提前感谢您解决此问题的最简单方法似乎就是使用curl作为外部命令
var command =string.Format("curl --interface {0} {yourCommandHere}", localIpString);
Process proc = new Process();
proc.StartInfo.FileName = "/bin/bash";
proc.StartInfo.Arguments = "-c \" " + command + " \"";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
var result = proc.StandardOutput.ReadToEnd();
Console.Writeline("curl result {0}", result);
有没有办法在机器上配置路由表,让操作系统来处理?(注意,根据您正在做的事情,这可能已经可以按照您想要的方式工作,而您的代码中没有任何特殊的逻辑)只有一个RemoteEndpoint,我需要不时地旋转本地端点。或者,我可能需要运行我的应用程序的多个实例,并为每个实例设置不同的本地端点。该问题已搁置一年多。所以看起来没有希望只有微软不愿意实施这一点,因为他们陈述了原因,而且这种用法虽然合理,但在IMHO中很少见。由于原始套接字是一种可行的解决方法,因此也不迫切需要将此问题向前推进。NET内核中的完全托管套接字实现应该是2.2或3.0版本中的内容,所以您应该等到这些版本发布后再检查。