J'ai 2 réseaux virtuels, disons 10.116.10.xxx et 10.116.11.xxx. J'ai le code ci-dessous pour envoyer un paquet magique:Paquets magiques et réseaux virtuels
using System;
using System.Net;
using System.Net.Sockets;
using System.Globalization;
public class MagicPackets:UdpClient
{
public MagicPackets() : base()
{
}
public void SetClientToBrodcastMode()
{
if(this.Active)
this.Client.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.Broadcast,0);
}
}
public class Run
{
public static void Main(string[] args)
{
Run.WakeFunction(args[0]);
}
private static void WakeFunction(string MAC_ADDRESS)
{
MagicPackets client=new MagicPackets();
client.Connect(new
IPAddress(0xffffffff),
0x2fff);
client.SetClientToBrodcastMode();
int counter=0;
byte[] bytes=new byte[1024];
//first 6 bytes should be 0xFF
for(int y=0;y<6;y++)
bytes[counter++]=0xFF;
//now repeate MAC 16 times
for(int y=0;y<16;y++)
{
int i=0;
for(int z=0;z<6;z++)
{
bytes[counter++]=
byte.Parse(MAC_ADDRESS.Substring(i,2),
NumberStyles.HexNumber);
i+=2;
}
}
int reterned_value=client.Send(bytes,1024);
}
}
Le code fonctionne très bien lorsqu'il est exécuté à partir d'un ordinateur sur le même réseau que l'ordinateur virtuel que je veux me réveiller, mais ne fonctionne pas si l'ordinateur est sur l'autre réseau virtuel. Des idées pourquoi et comment résoudre? limites
Merci, Gaz
Votre adresse IP est 0xffffffff aka 255.255.255.255 et ces diffusions sont envoyées uniquement dans le même sous-réseau. – Oliver
N'existe-t-il aucun moyen d'envoyer un paquet magique à un ordinateur sur un autre domaine Boardcast? – Gaz
Supposons un réseau IP. Vous devez récupérer le paquet sur le port de l'ordinateur en veille. Comme il dort, vous devez supposer que le routeur de ce réseau n'a pas d'entrée de table ARP en cours (mappage IP vers MAC) et que vous ne pouvez donc pas simplement envoyer à l'adresse IP qu'il a lorsqu'il est éveillé. Par conséquent, vous devez diffuser sur le réseau cible. Pour ce faire, vous devez effectuer une diffusion dirigée (par exemple à partir de 10.116.10.x envoyé à 10.116.11.255). Le problème avec ceci est que c'est un trou de sécurité et que les routeurs correctement configurés laisseront tomber ces paquets. – janm