我通过一些有限的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)
{
}