Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# dotnet核心http请求集源ip_C#_Linux_Curl_.net Core - Fatal编程技术网

C# dotnet核心http请求集源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请求

我有DotnetCore2.1应用程序,它必须使用多个源ip地址发送web请求

我经常在谷歌上搜索,试图找到解决办法。最受欢迎的是

但它不适用于dotnetcore,并且永远不会调用BindIPEndPointCallback

我还发现了包装curl功能的CurlHandler类

curl本身有用于设置源IP的--interface选项,但CurlHandler类没有任何公共方法来设置CurlOptions

所以我唯一能解决这个问题的方法就是使用原始套接字,但我不喜欢它

有没有设置web请求源ip的简单解决方案


提前感谢您

解决此问题的最简单方法似乎就是使用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版本中的内容,所以您应该等到这些版本发布后再检查。