当前使用的IP地址

兰德

我有一个C#Win 7桌面应用程序,该应用程序使用HttpClient发送Web请求有没有办法找出哪个网络适配器或NetworkInterface用于发送这些请求?(可能有多个LAN,WAN和虚拟适配器。)

我真的不想使用TcpClient,UdpClient或任何套接字级别的程序,因为它的级别更低,用户可能决定阻止端口。
我尝试采用的一种方法是找到当前请求的IP地址,然后尝试将其与NetworkInterface的IP地址进行匹配(使用NetworkInterface.GetAllNetworkInterfaces),但是HttpClient不会告诉您用于发送的IP请求。

兰德

这就是我最终要做的事情:

IPAddress localAddr = null;
try
{
    using (UdpClient udpClient = new UdpClient("8.8.8.8", 0)) //connect to google dns
    {
        localAddr = ((IPEndPoint)udpClient.Client.LocalEndPoint).Address;
        udpClient.Client.Close();
        udpClient.Close();
    }
}
catch (SocketException sex)
{
    Console.WriteLine("Failed to make UDP connection, no connection to DNS ? ");
}
//find all network interfaces
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
NetworkInterface activeAdapter = null;
foreach (NetworkInterface adapter in nics.Where(n => n.OperationalStatus == OperationalStatus.Up))
{
    //wifi adapter will be 'up' only if its associated with a hotspot
    IPInterfaceProperties properties = adapter.GetIPProperties();
    var match = properties.UnicastAddresses.Any(a => a.Address.Equals(localAddr));
    if (match)
    {
        activeAdapter = adapter;
        break;
    }
}

我不得不依靠UDP客户端,找不到从HttpClient获取IP的方法

这将为您提供用于连接到Internet的当前“活动”网络适配器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ifconfig从不显示当前IP地址?

来自分类Dev

使我当前的公共IP地址不变。

来自分类Dev

获取当前服务器的IP地址

来自分类Dev

显示当前安装的CIFS共享的IP地址

来自分类Dev

IP地址使用的语言

来自分类Dev

根据当前IP修改ssh_config IP地址

来自分类Dev

如何为现有的Azure Service Fabric群集保留当前IP地址,以便我可以销毁该群集并使用相同的IP地址重新创建它?

来自分类Dev

如何为现有的Azure Service Fabric群集保留当前IP地址,以便我可以销毁该群集并使用相同的IP地址重新创建它?

来自分类Dev

使用attoparsec解析IP地址

来自分类Dev

使用php检查IP地址

来自分类Dev

获取未使用的IP地址

来自分类Dev

IP地址0.0.0.0是否使用?

来自分类Dev

使用VPN时的IP地址

来自分类Dev

使用SpamAssassin阻止IP地址

来自分类Dev

Twitterbot使用的IP地址列表

来自分类Dev

使用grep获取IP地址

来自分类Dev

使用 EPPlus 写入 IP 地址

来自分类Dev

使用 MicroPython 获取 IP 地址

来自分类Dev

在 Powershell 中使用 IP 地址获取远程服务器的主机名、当前日期和时间

来自分类Dev

获取当前的IP地址Xamarin.Forms(跨平台)

来自分类Dev

获取当前EC2实例上的公共IP地址

来自分类Dev

我可以知道当前IP地址的格式是什么吗?

来自分类Dev

如何获取当前请求连接服务器的 ip 地址

来自分类Dev

gatsby链接使用的是当前地址,而不是根地址

来自分类Dev

使用“ arp -a”检索相应IP地址的MAC地址

来自分类Dev

使用IP地址访问https站点

来自分类Dev

使用Python查找网络(外部)IP地址

来自分类Dev

尝试使用javascript验证IP地址

来自分类Dev

使用MySQL计算IP地址列的变化

Related 相关文章

热门标签

归档