- Клёвый код
- Решаем задачи Абрамян на C. Matrix78
- Решаем задачи Абрамян на C. Matrix77
- Решаем задачи Абрамян на C. Matrix76
- Решаем задачи Абрамян на C. Matrix75
- Решаем задачи Абрамян на C. Matrix74
- Решаем задачи Абрамян на C. Matrix73
- Решаем задачи Абрамян на C. Matrix72
- Решаем задачи Абрамян на C. Matrix71
- Решаем задачи Абрамян на C. Matrix70
- Решаем задачи Абрамян на C. Matrix69
- Что такое Wake-on-LAN и как его включить?
- Magic Packet: Как работает Wake-on-LAN
- Как включить Wake-On-LAN
- В BIOS
- В операционной системе Windows
- В macOS
- В Linux
- Как включить компьютер с помощью Wake-on-LAN
- Depicus для Windows, Apple и Android
- Generating Wake On Lan Magic Packet для Linux
- WakeMeOnLan для Windows
- TeamViewer
- tobiashochguertel / Wake.ps1
- Bash one-line command to send wake on LAN magic packet without specific tool
- 2 Answers 2
Клёвый код
Скриптописание и кодинг
Решаем задачи Абрамян на C. Matrix78
Matrix78. Дана матрица размера $$M \times N$$. Упорядочить ее строки так, чтобы их минимальные элементы образовывали убывающую последовательность.
Решаем задачи Абрамян на C. Matrix77
Matrix77. Дана матрица размера $$M \times N$$. Упорядочить ее столбцы так, чтобы их последние элементы образовывали убывающую последовательность.
Решаем задачи Абрамян на C. Matrix76
Matrix76. Дана матрица размера $$M \times N$$. Упорядочить ее строки так, чтобы их первые элементы образовывали возрастающую последовательность.
Решаем задачи Абрамян на C. Matrix75
Matrix75. Дана матрица размера $$M \times N$$. Элемент матрицы называется ее локальным максимумом, если он больше всех окружающих его элементов. Поменять знак всех локальных максимумов данной матрицы на противоположный. При решении допускается использовать вспомогательную матрицу.
Решаем задачи Абрамян на C. Matrix74
Matrix74. Дана матрица размера $$M \times N$$. Элемент матрицы называется ее локальным минимумом, если он меньше всех окружающих его элементов. Заменить все локальные минимумы данной матрицы на нули. При решении допускается использовать вспомогательную матрицу.
Решаем задачи Абрамян на C. Matrix73
Matrix73. Дана матрица размера $$M \times N$$. После последнего столбца, содержащего только отрицательные элементы, вставить столбец из нулей. Если требуемых столбцов нет, то вывести матрицу без изменений.
Решаем задачи Абрамян на C. Matrix72
Matrix72. Дана матрица размера $$M \times N$$. Перед первым столбцом, содержащим только положительные элементы, вставить столбец из единиц. Если требуемых столбцов нет, то вывести матрицу без изменений.
Решаем задачи Абрамян на C. Matrix71
Matrix71. Дана матрица размера $$M \times N$$. Продублировать столбец матрицы, содержащий ее минимальный элемент.
Решаем задачи Абрамян на C. Matrix70
Matrix70. Дана матрица размера $$M \times N$$. Продублировать строку матрицы, содержащую ее максимальный элемент.
Решаем задачи Абрамян на C. Matrix69
Matrix69. Дана матрица размера $$M \times N$$ и целое число $$K$$ $$(1 \le K \le $$N$$)$$. После столбца матрицы с номером $$K$$ вставить столбец из единиц.
Что такое Wake-on-LAN и как его включить?
А Вы знали, что компьютер можно включить удалённо через lan сеть или даже через интернет. Технология Wake-On-LAN существует уже довольно давно, и сейчас мы рассмотрим, как она работает.
Wake-On-LAN (иногда сокращенно WoL) является стандартным протоколом для пробуждения компьютеров дистанционно. Естественно компьютер должен быть подключен физически и к электричеству и к роутеру с помощью проводного или даже по Wi-Fi соединения. Протокол Wake-on-Wireless-LAN позволяет включить компьютер и без проводного сетевого соединения.
Включение Wake-On-LAN зависит от двух вещей: материнской платы и сетевой карты. Ваша материнская плата должна быть подключена к ATX-совместимому блоку питания, т.е. практически к любому блоку питания, который выпускается уже лет 17 как. Сетевая карта или беспроводная карта также должны поддерживать эту функцию. Поскольку включение протокола WoL устанавливается либо через BIOS, либо через прошивку Вашей сетевой карты. В последнем случае понадобится специальное программное обеспечение, чтобы включать компьютер.
Поддержка Wake-On-LAN является довольно обычной возможностью встраиваемой в материнские и сетевые карты по умолчанию. Причём среди перечисленных характеристик в магазинах уже и не встретишь упоминания о поддержке Wake-On-LAN.
Magic Packet: Как работает Wake-on-LAN
Wake-On-LAN включает компьютер, посылая на его сетевую карту «волшебные пакеты», которые включают в себя сетевой широковещательный адрес, широковещательный адрес, MAC-адрес сетевой карты, и специальную последовательность байтов — пакет данных. Эти магические пакеты абсолютно идентичные для любой платформы будь то Intel или AMD или Apple. Типичные порты, используемые для WoL и магических пакетов — UDP 7 и 9. Поскольку каждый компьютер активно прослушивает канал передачи данных, то такой волшебный пакет, имеющий в себе уникальный идентификатор компьютера (MAC-адрес сетевой карты), без труда будет пойман и обработан.
На рисунке выше показаны результаты анализатора пакетов. Здесь возникает резонный вопрос: а безопасна ли передача волшебного пакета? Ведь перехватить незащищённый трафик не составит труда. На сколько безопасна передача Wake-On-LAN при использовании в небезопасных сетях и через Интернет? В защищенной сети или при домашнем использовании не должно быть повода для беспокойства. А в открытой сети, лучше не использовать Wake-On-LAN или по меньше мере заботиться о профиле соединения вашей сетевой карты, выбирая хотя бы варианты с минимальной открытостью ресурсов наружу.
Как включить Wake-On-LAN
Для того, чтобы начать использовать Wake-On-LAN, существует несколько вариантов его включения. Самый простой — через BIOS материнской платы. Другой вариант через специальную утилиту от производителя вашей материнской платы или сетевой карты.
В BIOS
Большинство старых компьютеров и многие современные имеют собственные настройки Wake-On-LAN, зашитые в BIOS. Для того, чтобы войти в BIOS, Вам нужно нажать на кнопку DEL или F1 или F2 при загрузке компьютера, После входа в BIOS перейдите в настройки питания (Power) или Дополнительные настройки (Advanced Options).
Рекомендуем ознакомиться со статьёй Почему нужно установить пароль на BIOS: как это сделать?, которая поможет дополнительно обезопасить свой компьютер от всяческих проблем, особенно касается ноутбуков.
В UEFI BIOS настройка включения Wake-On-LAN обычно находится в дополнительных опциях, иногда — в разделе Включение питания PCIE / PCI.
Также производители материнских плат называют технологию иначе: Aggresslive Link от ASRock, ErP от Gigabyte, PME от ASUS.
В операционной системе Windows
Вы также можете включить Wake-On-LAN в операционной системе. Как это сделать в Windows. Откройте меню ПУСК и введите Диспетчер устройств. После открытия Диспетчера устройств разверните раздел Сетевые адаптеры. Щелкните правой кнопкой мыши на сетевой карте и выберите Свойства, затем перейдите на вкладку Дополнительно.
Прокрутите список, и найдите Wake on Magic Packet, Wake on LAN — каждый производитель называет эту настройку на свой лад. Измените значение на Enabled, если оно выключено.
Теперь перейдите на вкладку Управление электропитанием, и убедитесь, что опция Разрешить устройству будить компьютер включена. Дополнительно можно установить галку напротив Разрешить только волшебному пакету будить компьютер.
В macOS
Откройте системные настройки и выберите Энергосбережение. Отметьте опцию Wake for Network Access или что-то подобное. Это позволит включить Wake-on-LAN.
В Linux
У Ubuntu есть отличный инструмент, который может проверить, поддерживает ли сетевая карта Wake-on-LAN и можно ли его включить. Откройте терминал и установите ethtool, используя следующую команду:
А поддержку Wake-on-LAN можно, запустив:
Если у Вас сетевой интерфейс другой eth1, eth2, eth3 и так далее, замените его.
Найдите пункт Wake-on. Чтобы включить эту опцию, используйте следующую команду:
Повторно запустите команду Sudo ethtool eth0, чтобы убедиться во включении. Должно быть Wake-on: g.
Как включить компьютер с помощью Wake-on-LAN
Чтобы отправлять запросы Wake-on-LAN, есть несколько доступных вариантов:
Depicus для Windows, Apple и Android
У Depicus есть отличная серия легких инструментов для выполнения этой работы, включая графический интерфейс для Windows и командную строку для Windows и MacOS. Кроме того доступно отдельное приложение на Android, iPhone и Windows Mobile.
Generating Wake On Lan Magic Packet для Linux
Этот сценарий позволит отправлять из консоли очень простой запрос на запуск компьютера, например wakeonlan.tcl 192.168.0.55 00:40:63:D5:2A:B9.
WakeMeOnLan для Windows
Еще одна очень маленькая утилита, которая буквально имеет одну функцию — запускать компьютеры через Wake-on-LAN.
TeamViewer
Удалённо включить компьютер можно с помощью программ удалённого рабочего стола. Такие приложения без труда разбудят спящий компьютер с помощью встроенной кнопки Wake Up, например как TeamViewer, которая позволяет использовать Wake-on-LAN. Список поддерживаемых платформ довольно обширен и доступен на официальном сайте.
Кроме того, в зависимости от программы Wake-on-LAN может работать по умолчанию, если Вы работаете с компьютера в Вашей локальной сети. Если программа автоматически не обрабатывает сетевые подключения для Wake-on-LAN, необходимо настроить маршрутизатор для пересылки UDP-портов с номерами 7 и 9, в частности, для MAC-адреса ПК, к которому Вы подключаетесь.
tobiashochguertel / Wake.ps1
# ###################################################### |
# # |
# # Wake.ps1, v1.0, 2013 |
# # |
# # Adapted by Ammaar Limbada |
# # Original Author: Matthijs ten Seldam, Microsoft (see: http://blogs.technet.com/matthts) |
# # |
# ###################################################### |
. SYNOPSIS |
Starts a list of physical machines by using Wake On LAN. |
. DESCRIPTION |
Wake sends a Wake On LAN magic packet to a given machine’s MAC address. |
. PARAMETER MacAddress |
MacAddress of target machine to wake. |
. EXAMPLE |
Wake A0DEF169BE02 |
. INPUTS |
None |
. OUTPUTS |
None |
. NOTES |
Make sure the MAC addresses supplied don’t contain «-» or «.». |
#> |
param ( [ Parameter ( Mandatory = $true , HelpMessage = » MAC address of target machine to wake up » )] |
[ string ] $MacAddress ) |
Set-StrictMode — Version Latest |
function Send-Packet ([ string ] $MacAddress ) |
< |
. SYNOPSIS |
Sends a number of magic packets using UDP broadcast. |
. DESCRIPTION |
Send-Packet sends a specified number of magic packets to a MAC address in order to wake up the machine. |
. PARAMETER MacAddress |
The MAC address of the machine to wake up. |
#> |
try |
< |
$Broadcast = ([ System.Net.IPAddress ]::Broadcast) |
# # Create UDP client instance |
$UdpClient = New-Object Net.Sockets.UdpClient |
# # Create IP endpoints for each port |
$IPEndPoint = New-Object Net.IPEndPoint $Broadcast , 9 |
# # Construct physical address instance for the MAC address of the machine (string to byte array) |
$MAC = [ Net.NetworkInformation.PhysicalAddress ]::Parse( $MacAddress .ToUpper ()) |
# # Construct the Magic Packet frame |
$Packet = [ Byte []]( , 0xFF * 6 ) + ( $MAC .GetAddressBytes () * 16 ) |
# # Broadcast UDP packets to the IP endpoint of the machine |
$UdpClient .Send ( $Packet , $Packet .Length , $IPEndPoint ) | Out-Null |
$UdpClient .Close () |
> |
catch |
< |
$UdpClient .Dispose () |
$Error | Write-Error ; |
> |
> |
# # Send magic packet to wake machine |
Write » Sending magic packet to $MacAddress « |
Send-Packet $MacAddress |
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Bash one-line command to send wake on LAN magic packet without specific tool
Is it possible to forge a wake on LAN magic packet and send it in just a one-line bash command?
Of course, I know there are specific tools for doing this that solve the problem in one line, but it could be useful to know the minimal requirements for WOL forging. This is: how to deal with wake on LAN without specific tools.
2 Answers 2
The minimum requirements I can think off:
- Bash supporting brace expansion (I think it is v3.5.1 and above).
- The sed command (1).
- NetCat.
- WOL package for LAN, broadcast to 255.255.255.255.
The command line would be:
Replace $MAC by the destination MAC. Or, this time in a two-liner 🙂 command:
So, in a more generic notation:
- The WOL magic packet is composed of ffffffffffff (12 times f ) followed by 16 times the destination MAC without colons ( : ).
- The sed command is used here to remove colons ( : ) from the MAC and to add the \x hex specificator (so that 11 becomes \x11 , 22 becomes \x22 . and so on) prior to sending the string to the network stack.
- The forged wake on LAN package is sent to the network stack piping it to NetCat. SoCat can be used instead (syntax will differ, of course).
Tested working on Ubuntu, Kali and even CygWin (Windows 7 SP 1 64 bits ).
To take under consideration:
- CygWin’s NetCat version doesn’t need for -b parameter.
- NetCat’s OpenBSD version has a bug as for today (Juy 2015) on broadcast data sending ( -b ), so you will have to replace it by NetCat Traditional version (netcat-traditional package on apt-get installers).
- This example uses UDP port 4.000. The specific port number seems not to be important on WOL.
- The above one-line bash command should work too for wake on LAN via internet. In this case replace $Broadcast address by the destination public IP, and open/forward the specified $PortNumber (UDP) on destination.
- echo -e can be replaced by printf .
WOL magic packet string for the above example:
(1) Well, indeed, sed is not explicitly required. It is used here to remove ‘:’ and add \x to each pair of characters in the magic packet’s forged string. I know there are ways to replace sed by some shell expansion or so.