选择可以通过特定IP进行累积的网卡

时间:2019-03-15 08:09:47

标签: c# networking ipv4 netmask

我通过一些有限的API从客户端收到一条消息,并获取了该客户端的IP地址。我的服务器有4个网卡。

我想回复客户端,它可以通过我的一个接口上的TCP连接到达我,但是我怎么知道哪个?

如何修改此功能以返回正确的网卡的IPv4地址?如何将客户端的IPv4地址与我的地址进行比较,以使其始终返回另一端可以实际与之通信的IP? IP可以是任何值,并且可以具有不同的掩码和网关。

空函数需要包含什么?

public static string GetLocalIPAddressInRange(IPAddress testIP)
{
    var host = Dns.GetHostEntry(Dns.GetHostName());
    foreach (var ip in host.AddressList)
    {
        if (ip.AddressFamily == AddressFamily.InterNetwork)
        {
            if(IPIsOnSameNetwork(ip, testIP))
            {
                return ip.ToString();
            }
        }
    }
    throw new Exception("No network adapters with an IPv4 address in the network!");
}

public static bool IPIsOnSameNetwork(IPAddress local, IPAddress test) 
{
}

0 个答案:

没有答案