Автоматизировать свой компьютер с помощью смс
Мне было интересно, если бы можно было автоматизировать мой компьютер, отправив ему смс текстовые сообщения.
Это план:
- подключите модем usb gsm к ПК
- Отправьте текст "start explorer" на модем usb с помощью моего мобильного устройства
- приложение на компьютере получает текст и запускает программу "проводник"
Конечно, это простой пример, но я надеюсь, что этого достаточно, чтобы показать, что я пытаюсь выполнить: запуск определенных программ на компьютере с помощью команды sms.
Это не обязательно Windows, я тоже могу использовать Linux.
5 ответов
Мы используем бесплатное программное обеспечение под названием MWconn для Windows или ixconn для Ubuntu.
Он имеет некоторые удивительные функции и прост в установке. Он не только может автоматически дозваниваться при запуске ПК, но также может обмениваться данными с модемом. Он имеет встроенный диспетчер SMS, удаленное управление ПК с помощью SMS и входящего вызова, передачу SMS с помощью пакетного задания с простым интерфейсом настройки и все для запуска пакетного или исполняемого файла.
Мы используем его для запуска командного файла для обновления наших модулей, если они не могут сделать это автоматически. Или перезагрузите компьютер или соединения. Возможности относительно безграничны.
Существует руководство и форум для дальнейших вопросов.
Я не пробовал это сам, но можно было бы использовать что-то вроде pygooglevoice для получения текстовых сообщений, отправленных на номер Google Voice (если у вас есть, или может получить). Тогда ваш скрипт будет реализовывать командный процессор, который интерпретирует содержимое текстового сообщения.
Я не пробовал это делать, но, судя по отзывам пользователей, я думаю, это того стоит. В статье Как управлять ПК с Windows с помощью электронной почты или SMS я обнаружил программное обеспечение TweetMyPC, которое претендует на магию для вашего ПК.
Как отправить команды на удаленный компьютер
По электронной почте: свяжите свою учетную запись Twitter с Posterous (автоматическая публикация) и всеми сообщениями электронной почты, отправленными на twitter@posterous.com
поэтому станет командами для удаленного компьютера.
(Также см. Сообщение в Twitter по электронной почте)
С помощью SMS: если вы живете в США, Великобритании, Канаде, Индии, Германии, Швеции или Новой Зеландии, вы можете отправить ассоциированный Twitter с вашего мобильного телефона (см. Список номеров), а затем управлять своим удаленным компьютером с помощью текстовых сообщений SMS.
По IM: Добавить бота Twitter - twitter@twitter.com
- в ваш список друзей Google Talk, и вы можете отправлять команды через мгновенные сообщения.
По сети: если вы находитесь в отпуске, но у вас есть доступ к ноутбуку, подключенному к Интернету, просто войдите на веб-сайт Twitter и выполните команды (например, выключение или выход из системы) просто как еще один твит.
Загрузка файлов, создание снимков экрана и многое другое.
Хотя TweetMyPC довольно хорош для выключения удаленного компьютера, он также позволяет вам делать еще кое-что удивительное. Например, вам необходимо загрузить незаконченную презентацию с офисного компьютера, чтобы вы могли работать с ней дома.
Вот неполный список команд, которые вы можете использовать для удаленного управления ПК - они не чувствительны к регистру и, как обсуждалось выше, вы можете отправлять их в Twitter по электронной почте, SMS, IM или через Интернет.
Снимок экрана: Это одна из самых полезных команд, с которыми я столкнулся после команды выключения. Хотите знать, что происходит в пределах вашего ПК, когда вас нет рядом? Просто сделайте твит-скриншот, и TweetMyPC сделает скриншот вашего рабочего стола и опубликует его в Интернете (см. Пример).
ShutDown, LogOff, Reboot, Lock: Функция этих полезных команд довольно очевидна из их названий.
Standby, Hibernate: не хотите выключать удаленный компьютер? С помощью этой команды сэкономьте электроэнергию, войдя в режим ожидания. Или переведите ваш компьютер в спящий режим с помощью твита, тем самым экономя еще больше энергии.
Загрузка: вы можете загрузить любой файл из Интернета на удаленный компьютер с помощью команды загрузки. Например, такая команда, как download http://bit.ly/tCJ9Y, загрузит Справочник CIA, поэтому у вас будет готов документ, когда вы возобновите работу на следующий день.
GetFile: команда Download была предназначена для загрузки файлов из Интернета на удаленный компьютер. Однако, если вы хотите перенести файл с удаленного компьютера на ваш текущий компьютер, используйте команду GetFile. Он займет полную страницу файла, который вы хотите загрузить, и отправит его вам в виде вложения электронной почты. Если вы не знаете страницу файла, используйте команду GetFileList <drivename>
чтобы получить список файловых папок на этом диске.
GetProcessList: это похоже на удаленный диспетчер задач. Вы получите список программ, которые в данный момент работают на удаленном компьютере, вместе с их идентификаторами процессов. Отправить еще одну команду kill <process id>
прекратить любую программу, которую вы считаете подозрительной или необязательной.
Вся информация скопирована из Как удаленного управления вашим ПК с Windows по электронной почте или SMS.
Телефоны с модемами отвечают на AT-команды через последовательный порт (по крайней мере, я не видел модель, которая этого не делает). При подключении к компьютеру через USB он открывает последовательный порт, к которому вы можете подключиться, например, с помощью сценария Perl, используя Device::SerialPort
модуль для прослушивания новых сообщений (я уверен, что аналогичные модули существуют для Python / и т. д.). Когда подается сигнал нового сообщения, прочитайте последнее сообщение и затем действуйте на его содержание.
Это не должно быть много строк кода, которые нужно сделать самостоятельно (скорее всего, это будет порядка 10-20 строк). Скорее всего, следствием будет выяснение правильных команд AT, но если вам повезет, вы можете найти их в Google.
Большие универсальные программы, которые обмениваются данными с телефонами, почти исключительно используют AT-команды и таблицы перевода для разных телефонов.
Если вам нравится этот путь и вы хотите узнать больше, начните с использования minicom или другой последовательной консольной программы, чтобы проверить ваш телефон и узнать, какие команды для него доступны.
#!/bin/bash
gammu="/usr/bin/gammu"
$gammu getallsms | /bin/grep -B 1 -A 2 "UnRead" > /home/gammu.txt
checkWord=$(/usr/bin/awk 'c&&!--c;/UnRead/{c=2}' /home/gammu.txt)
servX=$(/usr/bin/awk 'c&&!--c;/UnRead/{c=2}' /home/gammu.txt | sed 's/^\(.\{1\}\).*/\1/')
commX=$(/usr/bin/awk 'c&&!--c;/UnRead/{c=2}' /home/gammu.txt | sed 's/^..//')
number=$(grep "+" /home/gammu.txt | sed 's/[^+0-9]*//g' | sed 's/^..//')
numberPlus=$(grep "+" /home/gammu.txt | sed 's/[^+0-9]*//g')
if [ "$number" = "0123456789" ] || [ "$number" = "0111111111" ] && [[ "$checkWord" =~ [0-9]* ]]
then
if [ $servX -eq 0 ]
then
ssh -p 20022 root@192.168.0.250 $commX > /home/stdout.txt
cat /home/stdout.txt | $gammu --sendsms TEXT $numberPlus
exit 0
fi
if [ $servX -eq 1 ]
then
ssh root@192.168.0.1 $commX > /home/stdout.txt
cat /home/stdout.txt | $gammu --sendsms TEXT $numberPlus
exit 0
fi
fi
Что-то подобное? Для этого вам нужно настроить гамму. И crontab сценарий каждую минуту или 30 секунд. Также по соображениям безопасности используйте его за брандмауэром (вам нужно настроить открытые ключи, если вы делаете это с несколькими серверами).
если вы отправляете текстовое сообщение "0 uname -a", вы получаете текстовое сообщение с выводом этой команды для конкретного сервера. Убедитесь, что вы не потеряете свой телефон:)