У меня есть 2 виртуальных сети, скажем 10.116.10.xxx и 10.116.11.xxx. У меня есть следующий код, чтобы отправить волшебный пакет:Магические пакеты и виртуальные сети
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);
}
}
код отлично работает при запуске его с компьютера на одной и той же виртуальной сети, что и компьютер, я хочу, чтобы разбудить, но не работает, если компьютер на другой виртуальной сети. Любые идеи, почему и как исправить?
Спасибо, Gaz
Ваш IPAddress равен 0xffffffff aka 255.255.255.255, и эти трансляции отправляются только в пределах одной подсети. – Oliver
Невозможно отправить волшебный пакет на компьютер в другом домене? – Gaz
Предположим, что IP-сеть. Вам нужно получить пакет в порт спящего компьютера. Поскольку это спящий режим, вы должны предположить, что маршрутизатор для этой сети не имеет текущей записи таблицы ARP (сопоставление IP-MAC), и поэтому вы не можете просто отправить IP-адрес, который он имеет при пробуждении. Поэтому вам необходимо транслировать в целевой сети. Для этого вам нужно будет сделать направленную трансляцию (например, от 10.116.10.x отправлено до 10.116.11.255). Проблема заключается в том, что это дыра в системе безопасности, и правильно настроенные маршрутизаторы потеряют эти пакеты. – janm