c# - dotnet core http请求集源ip
问题描述
我有 dotnet core 2.1 应用程序,它必须使用多个源 IP 地址发送 Web 请求。
我用谷歌搜索了很多,并尝试找到解决方法。最受欢迎的是
我可以使用 .NET Framework 从指定的 IP 地址发送 Web 请求吗?
但它不适用于 dotnet 核心,并且永远不会调用 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);
推荐阅读
- json - Mariadb 查询和提取 JSON 数据
- java - 在 Java WAR 文件中部署 Angular 6
- cmake - 为什么 CMake 强制使用带有可分离编译的 libcublas?
- reactjs - @isUnique 在 GraphQL SDL(aws appsync)中不起作用
- mysql - SQL 连接允许给定列的多行
- javascript - 如何自动提交带有文本框 onchange 值的表单?
- jvm - Xpages/Domino Java 内存使用说明
- python - django.db.utils.ProgrammingError:关系“django_site_domain_v2339b81_uniq”已经存在
- html - 从 thymeleaf 表单中隐藏下拉列表
- vba - 显示电子邮件正文 vba 的范围部分