Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

понедельник, 26 марта 2012 г.

Как удаленно включить свой компьютер?

Только что научился включать свой комп не нажимая кнопку питания компьютера, причем удаленно. Радуюсь как ребенок. Оказывается еще давным давно было придумана технология Wake On Lan. Все, что надо знать, так это мак адресс включаемого компа и айпишку рабочего узла, который видит карточку с фичей Wake On Lan на борту.

Начнем с самого самого начала. Допустим я не знаю ни IP компьютеров в сети, ни уж тем более MAC адресов карточек. Что делать?

Нумбер1. Садимся за комп, который позже планируем включать удаленно. На нем запускаем команду cmd и там запускаем ipconfig

C:\Users\xxx>ipconfig /all

Windows IP Configuration

Wireless LAN adapter Wireless Network Connection:

   Connection-specific DNS Suffix  . : ......
   Description . . . . . . . . . . . : ....
   Physical Address. . . . . . . . . : 12-34-56-78-9A-BC
   DHCP Enabled. . . . . . . . . . . : ....
   Autoconfiguration Enabled . . . . : ....
   Link-local IPv6 Address . . . . . : ....::....:....:....:....%..(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.1.200(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : ......, .... .., .... ..:..:.. PM
   Lease Expires . . . . . . . . . . : ......, .... .., .... ..:..:.. PM
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : ...........
   DHCPv6 Client DUID. . . . . . . . : ..-..-..-..-..-..-..-..-..-..-..-..-..-..
   DNS Servers . . . . . . . . . . . : 123.45.678.9
                                       234.56.789.10
   NetBIOS over Tcpip. . . . . . . . : ........

C:\Users\xxx>

Так среди прочего можно в поле IPv4 Address найти айпишку компа а в поле Physical Address - МАС адресс. Кстати я лишние циферки заменил на символ '.' чтобы не смущать любознательных и выделить полезное.

Если же у нас нет возможности подойти к компьютеру, то мы можем за любым другим компьютером сети сделать следующее (опять же в cmd)

C:\Users\xxx>arp -a 

Interface: 192.168.1.200 --- 0xc
  Internet Address      Physical Address      Type
  192.168.1.1           01-23-45-67-78-9A     dynamic
  192.168.1.200         12-34-56-78-9A-BC     dynamic
  192.168.1.201         23-45-67-89-AB-CD     dynamic
  ___.___.___.___       ..-..-..-..-..-..     static
  ___._.__.__           ..-..-..-..-..-..     static
  ___._.__.__           ..-..-..-..-..-..     static
  ___._.__._            ..-..-..-..-..-..     static
  ___.___.___.___       ..-..-..-..-..-..     static
  ___.___.___.___       ..-..-..-..-..-..     static

Тут отображаются компьютеры (IP и MAC), с которыми пообщался текущий компьютер. Если тут нет компьютера, который мы хотим включить, тогда его всего лишь надо попинговать (если знаем IP)

C:\Users\xxx>ping 192.168.1.200

Pinging 192.168.1.200 with 32 bytes of data:
Reply from 192.168.1.200: bytes=64 time<1ms TTL=128
Reply from 192.168.1.200: bytes=64 time<1ms TTL=128
Reply from 192.168.1.200: bytes=64 time<1ms TTL=128
Reply from 192.168.1.200: bytes=64 time<1ms TTL=128

Ping statistics for 192.168.1.200:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

А после снова запустить arp -a и подглядеть результат Но если мы не знаем айтишку включаемого компьютера - тоже не беда. Нам всего лишь надо просканить весь диапазон айпишек локальной сетки. Когда мы вводили ipconfig команду то могли пронаблюдать что в поле Subnet Mask написано 255.255.255.0 - это значит, что айпишники локальной сетки при том, что айпишник текущей машины 192.168.1.200 - будут в диапазоне 192.168.1.0-255. Осталось пропинговать все 255 компов и снова запустить arp -a

Как пропинговать диапазон? Просто запускаем команду (для адресов 192.168.1.1-255)

C:\Users\xxx>for /l %i in (1,1,254) do ping -n 1 192.168.1.%i >>ping.txt

А потом смотрим файл ping.txt. Обычно ответ будет таким

Pinging 192.168.1.___ with 32 bytes of data:
Reply from 192.168.1.___: Destination host unreachable.

Ping statistics for 192.168.1.___:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

Но когда комп включен, то таким

Pinging 192.168.1.___ with 32 bytes of data:
Reply from 192.168.1.___: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.1.___:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Вот это нам и надо.

Чтобы не париться по всему файлу, можно качнуть отсюда пак с юниксовыми утилитами, портированными под windows. Распаковать и запустить команду

C:\Users\xxx>grep bytes.*time.*TTL ping.txt

Reply from 192.168.1.___: bytes=64 time=20ms TTL=64
Reply from 192.168.1.___: bytes=64 time<1ms TTL=128
Reply from 192.168.1.___: bytes=64 time=112ms TTL=128
Reply from 192.168.1.___: bytes=64 time=3ms TTL=128

Теперь, если ты еще не забыл зачем мы тут собрались, запускаем arp -a - смотрим на мак-адрес компьютера. Записываем на бумажке, а когда он случайно выключится, то качаем вот эту програмульку и запускаем ее так:

C:\Users\xxx>wol 12:34:56:78:9A:BC

И все :) Если вы находитесь в расхных подсетях, тогда запускать стоит так

C:\Users\xxx>wol 123.234.231.123-12:34:56:78:9A:BC

где 123.234.231.123 - айпишник узла, который видит карточку. (я этого непробовал, но говорят работает). Попробую в будущем включать комп удаленно из интернета, так что продолжение следует...

Этот пост состоялся благодаря гуглу и страничкам
1) http://white55.narod.ru/wol.html
1) http://computernity.ru/index.php?s=&act=ST&f=11&t=5941
1) http://www.sablog.ru/kak-uznat-mac-adres-setevoj-karty-udalenno/
1) http://unxutils.sourceforge.net/

12 комментариев:

  1. Из интернета не получится - мак адрес идет до ближайшего устройства, работающего на 3м уровне ISO/OSI

    ОтветитьУдалить
  2. А то так можно было бы включать все компьютеры в интернете - просто перебирая адреса.

    ОтветитьУдалить
    Ответы
    1. Ну.... Mac-адреса по идее уникальны в пределах интернета. Так что то что конкретный протокол или семейство протоколов не позволяет выйти за рамки "сети" в смысле OSI ещё не значит ... что обходным путём этого сделать нельзя.
      Так... мысли вслух.

      Удалить
    2. Именно! Обходным путем. Люблю тропы, а если еще и нехоженные. :)

      Удалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить
  4. Согласен, но все же я видел в некоторых постах, что был успешный кейс. Так же отказываться от мечты, пусть даже если сейчас она кажется нереальной не буду. Если придется эту идею забросить, то я останусь неудовлетворенным. Как говорится "я получил ответ, но не получит то, что хотел". Конечно, сейчас на это не охота тратить/инвестировать времени, но таску оставлю открытой - мало ли когда-то именно она поднимет меня сутра с дивана... Так иногда случается. Использую как инструмент.

    ОтветитьУдалить
  5. можно включать комп и через интернет, чере сайт http://wakeonlan.ru

    ОтветитьУдалить
    Ответы
    1. Включать через интернет можно, только нужно это делать как описано в статье по Вашей ссылке (white55.narod.ru/wol.html) Принцип простой - включающий пакет приходит на IP - адрес и определенный порт роутера, и уже правилом маппинга портов отправляется в локалку на широковещательный адрес.

      Удалить
  6. Рискнул, попробовал - не получается. У Вас получалось?

    ОтветитьУдалить
    Ответы
    1. Пишет. Ошибка отправки!
      И вообще, какой широковещательный адрес должен быть, если у меня маска 255.255.255.252?

      Удалить
  7. Для тех у кого Android - вот приложуха небольшая для включения компа https://play.google.com/store/apps/details?id=ru.freask.pcwakeup
    Описание тут http://develop.freask.ru/android/vklyuchenie-kompyutera-udalyonno-so-smartfona-na-android.html
    Она работает даже в тех случаях, когда компьютер за NAT-ом роутера и проброс портов не помогает (а он и не поможет если комп выключен).
    ----
    http://freask.ru - веб-студия, услуги разработки сайтов, создание сайта под ключ

    ОтветитьУдалить