c# - saber - Problema al intentar unificar paquetes a redes disponibles
como saber cuando llega mi pedido de ebay (3)
Como tiene más de una interfaz, tiene múltiples amenazas. Para cada interfaz, tendrá una dirección IP. Entonces, con tres interfaces, tendrá tres IP locales. Cuando usa UdpClient, necesita especificar qué interfaz enviar mediante su IP.
supongamos que tiene los siguientes tres IP locales
10.1.0.1
10.2.0.1
10.4.0.1
con una máscara de red de 255.255.0.0
y desea enviar un paquete UDP a 10.2.5.5, debe enviarlo a 10.2.0.1, entonces use el siguiente código
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("10.2.0.1"), 0);
IPEndPoint targetEndPoint = new IPEndPoint(IPAddress.Parse("10.2.5.5"), iTargetPort);
UdpClient sendUdpClient = new UdpClient(localEndPoint);
int numBytesSent = sendUdpClient.Send(CombineHeaderBody, CombineHeaderBody.Length, targetEndPoint);
y para enviar un paquete UDP a 10.1.90.5 debe enviarlo 10.1.0.1, entonces use el siguiente código
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("10.1.0.1"), 0);
IPEndPoint targetEndPoint = new IPEndPoint(IPAddress.Parse("10.1.90.5"), iTargetPort);
UdpClient sendUdpClient = new UdpClient(localEndPoint);
int numBytesSent = sendUdpClient.Send(CombineHeaderBody, CombineHeaderBody.Length, targetEndPoint);
La diferencia entre los dos es localEndPoint y targetEndPoint.
Intentando unificar paquetes a redes disponibles. Hay totalmente 3 redes. Logré obtener paquetes en una sola red. Pero no puedo recibir los paquetes en diferentes redes.
usando este código ...
foreach (var i in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
{
foreach (var ua in i.GetIPProperties().UnicastAddresses)
{
System.Windows.Forms.MessageBox.Show(ua.Address.ToString());
IPAddress Tip = IPAddress.Parse(ua.Address.ToString());
IPEndPoint targetEndPoint = new IPEndPoint(Tip, iTargetPort);
MyUdpClient sendUdpClient = new MyUdpClient();
int numBytesSent = sendUdpClient.Send(CombineHeaderBody, CombineHeaderBody.Length, targetEndPoint);
}
}
¿Cuál es el problema? Gracias.
Creo que estás tratando de enviarte paquetes a ti mismo.
¿Estás seguro de que no confundes las direcciones de unidifusión y multidifusión?
Ok, entonces no estás tratando de multidifundir ...
Cada una de su interfaz de red tiene una dirección IP. Lo que estás haciendo aquí es enviar un paquete a tu tarjeta de red. En realidad, no se trata de una cuestión de red, ya que su máquina probablemente conozca sus propias direcciones IP y la redireccione a 127.0.0.1.
No soy un gran gurú de la red, pero intentaré atacarlo. Supongo que todos los paquetes se envían a través de la interfaz predeterminada que conoce tres direcciones: es propia, de bucle invertido y de puerta de enlace. Por lo tanto, un paquete de 192.168.1.111 destinado a 10.10.1.117 tendría que pasar a través de la puerta de enlace predeterminada (digamos que es 192.168.1.1), pero ¿qué ocurre si 192.168.1.1 no conoce la ruta a 10.10.0.0, entonces el host de destino inalcanzable ¿no? No lo sé, esa es mi suposición.
Aunque, tal vez estoy equivocado. Tal vez no use un dispositivo predeterminado y en su lugar usa todas las interfaces disponibles junto con la pila TCP / IP. De todos modos, tengo curiosidad por ver lo que encuentras sin embargo. Por favor mantengannos al tanto.
Además, anotar las direcciones puede ser útil. La ruta de rastreo es tu amiga.