Я отвечу для родителей: аля "Родительский контроль"
Вы можете начать с прокси-сервера, когда детям менее 10 лет. После этого они выяснят, как обойти прокси (или запустят свои собственные клиентские приложения, которые обходят прокси). В ранние подростковые годы вы можете использовать сырые розетки.
Введите эту программу в Visual Studio (C #).
class Program
{
static void Main(string[] args)
{
try
{
byte[] input = BitConverter.GetBytes(1);
byte[] buffer = new byte[4096];
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
s.Bind(new IPEndPoint(IPAddress.Parse("192.168.1.91"), 0));
s.IOControl(IOControlCode.ReceiveAll, input, null);
int bytes = 0;
do
{
bytes = s.Receive(buffer);
if (bytes > 0)
{
Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, bytes));
}
} while (bytes > 0);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
Обратите внимание, что это всего лишь «фрагмент», в котором отсутствует соответствующий дизайн и проверка ошибок. [Пожалуйста, не используйте «как есть» - вы запросили только начальный шаг] Измените IP-адрес своей машины. Запустите программу Администратор AS (используйте «runas» в командной строке или щелкните правой кнопкой «Запуск от имени администратора»). Только администраторы могут создавать и использовать необработанные сокеты в современных версиях Windows. Расслабьтесь и посмотрите шоу.
Весь сетевой трафик доставляется по вашему коду (отображается на экране, который не будет хорошо смотреться с этой программой).
Ваш следующий шаг - создать несколько протокольных фильтров. Узнайте о различных протоколах интернет-приложений (если вы еще не знаете), измените программу для проверки пакетов. Найдите протокол HTTP и сохраните соответствующие данные (например, запросы GET).
У меня лично есть фильтры для AIM (AOL Instant Messenger), HTTP, MSN Messenger (Windows Live Messenger), POP и SMTP. Сегодня HTTP получает практически все, потому что дети сейчас предпочитают стену на Facebook AIM.
По мере того, как дети достигают подросткового возраста в раннем и среднем возрасте, вы захотите отстать от наблюдения. Некоторые говорят, что это позволяет детям «расти», но настоящая причина в том, что « вы не хотите знать ». Я отказался от сбора URL-адресов запросов на получение и имен пользователей / паролей (для экстренных ситуаций) в виде открытого текста (pop, basic auth и т. Д.).
Я не знаю, что происходит в последние подростковые годы; Я не могу представить, что все становится намного хуже, но мне говорят, что «я еще ничего не видел».
Как кто-то ранее сказал, это работает только при запуске на целевой машине (я запускаю копию на всех машинах в доме). В противном случае, для простого мониторинга проверьте ваш роутер - у меня есть несколько приятных функций регистрации.
Мой последний комментарий заключается в том, что это приложение должно быть написано на C / C ++ для Win32 API напрямую и установлено как служба, работающая с правами администратора на компьютере. Я не думаю, что этот тип кода подходит для управляемого C #. Вы можете прикрепить пользовательский интерфейс в C # для мониторинга и контроля. Вы должны разработать код так, чтобы он не оказывал заметного влияния на систему.