• Как правильно отправить CURL запрос на сайт с капчей?

    @remzalp
    Программер чего попало на чем попало
    Сама идеология HTTP протокола в том, что каждый запрос независимый. Единственный костыль, который позволяет отследить состояние - cookie.

    Вся последовательность работы:
    1. скачать страницу с капчей
    2. Тут же СКАЧАТЬ КАРТИНКУ КАПЧИ - вот тут у вас косяк, потому что вы отдаете урл картинки, она открывается другим браузером - у юзера, с другими куками и другим ип адресом, сохранить её в файл
    3. отдать картинку юзеру с вашего локального сервера, получить от него текст капчи
    4. текст капчи отпостить на форму из п.1

    на всех этапах следим за куками. Wireshark/tcpdump в помощь, позволит заглянуть глубже некуда.

    Функции request() из первого файла более чем достаточно, зачем костылить одноименную такую же функцию во втором случае?
    Ответ написан
  • Как запустить 16-разрядную программку под Windows-7,8 без инсталляции эмулятора или виртуальной машины?

    @remzalp
    Программер чего попало на чем попало
    берём DosBox и ставим себе, потом начинаем складывать в отдельный каталог "МояМегаСофтина" необходимые файлы.
    Что нужно:
    1. Файлы dosbox.exe, SDL.dll, SDL_net.dll, ваша программа со всеми необходимыми в подкаталог dos
    2. Создать файл dosbox.conf:
    = = =
    [autoexec]
    mount c .\dos
    c:
    ufo.bat
    = = =
    положить рядом с dosbox.exe (имя запускаемого файла в конфиге своё впишите).

    В полученной пачке запускать Dosbox.exe, можно сделать архив и раздавать, работает без установки (правда люди любят запускать прямо из архива, а без полной распаковки работать не будет). На этом можно и остановиться.

    3. На базе того же WinRar SFX можете сделать инсталлятор, который еще и ярлык на досбокс кинет на рабочий стол.
    Ответ написан
    2 комментария
  • Что из себя представляют Keepalive сообщения на Cisco switch?

    @remzalp
    Программер чего попало на чем попало
    что с (R)STP? Очевидные вещи проверяли?

    А так, Wireshark воткнутый через пассивный (не знаю как назвать) между свичом и медиаконвертером даст тебе совсем всю информацию и много больше.
    Ответ написан
  • Что происходит с файлом, подмена содержания?

    @remzalp
    Программер чего попало на чем попало
    Если скачанный файл переименовать как .docx, то всё будет работать вполне успешно (убедитесь). Или умный браузер при скачивании неправильно обзывает (смотреть mimetype, как сказал Денис Акимкин ), или файл с сервера отдаётся с неправильным расширением.

    Если файл генерится на лету и отдаётся из php, то метод принуждения - отдавать название файла с расширением прямо в заголовке:
    header('Content-Disposition: attachment; filename="downloaded.docx"');

    Что именно слетело - искать со стороны хостера.

    ===UPD
    зафиксирую правильный ответ - неправильный файл стал содержать UTF-8 BOM в начале файла. Кто-то правил php скрипт и неправильно сохранил в уникоде.
    Ответ написан
  • Как получить смарт хардов всех доменных пк?

    @remzalp
    Программер чего попало на чем попало
    Консоль наш метод. Используется Smartctl из https://www.smartmontools.org/
    Ни от каких экзотических драйверов не зависит, так что спокойно запускается с любого компа без установки.
    Вывод перенаправляем в текстовый файл, который копируем на сервер.

    Запуск можно добавить в logon скрипт.
    Ответ написан
    2 комментария
  • Как проверить сервисы linux?

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

    Можно взять какоуй-то супервайзер (supervisord?), который уже будет заниматься автоматическим рестартом упавших сервисов (которые он и будет стартовать при запуске).

    Nagios/Zabbix умеют мониторить сервисы хоть локального, хоть удаленного компьютера, можно назначить триггеры, которые что-то будут делать при падении.
    Ответ написан
    2 комментария
  • Возможно ли подключение реального устройства к емулируемому в AVR Studio через USB?

    @remzalp
    Программер чего попало на чем попало
    Это плохая идея, даже если не задумываться о реализуемости.
    Слишком много промежуточных шагов обработки, на каждом из которых будут свои отклонения от действительности. Идеально работает устройство на эмуляторе? Замечательно!
    А эмулируется дрожь руки паяющего, наводки по питанию, паразитные взаимодействия? :)

    Экономьте время и силы - сразу напрямую собрать макет, подключиться к устройству через JTAG и отлаживать его из студии. Потребуется микросхема с поддержкой JTAG, любую таким методом не поотлаживать.
    easyelectronics.ru/vnutrisxemnaya-otladka-avr-cher...
    Ответ написан
    Комментировать
  • Будет ли нормально работать псевдо стримминг на php?

    @remzalp
    Программер чего попало на чем попало
    Собственно эта вот строка:
    if (!($this->stream = fopen($this->path, 'rb'))) {
    намекает на то, что скрипт открывает файл только на чтение, так что проблем у параллельных процессов с доступом к этому файлу как-бы совсем нет.

    Проблема может быть в количестве одновременно запущенных процессов php. 1000 коннектов = 1000 запущенных процессов, каждый процесс кушает запросто мегабайт 50. Оперативной памяти серверу хватит? :)

    Все вопросы авторизации лучше доверить профессионалам:
    erlyvideo.ru/doc/auth
    Ответ написан
  • Есть ли приложение с возможностью отправлять в автоматическом режиме GPS координаты на произвольный скрипт?

    @remzalp
    Программер чего попало на чем попало
    GPS Logger
    Частота логирования настраивается. Можно настроить отсылку GPX файла (xml в потрохах), можно настроить отсылку GET запроса на указанный url с кучей настроек, есть Dropbox, Google Drive. Free :)

    Из личного опыта - из 3 механизмов получения данных лучше оставить только GPS, если нужна хорошая точность. А то мобильные сети только и делают, что отсылают координаты вышки, к которой ты привязан.
    Ответ написан
    1 комментарий
  • Как парсить json с чужого сервера?

    @remzalp
    Программер чего попало на чем попало
    Просто по запросу ссылки отдаётся html страница, в ней JS код, который проверяет наличие куки c нужным именем и IP адресом, если нету - устанавливает её и перезагружает страницу
    Фрагмент установки: setCookie('Y...6', '1.2.3.4', 10);

    Для того, чтобы выяснить минимальный набор заголовков, который надо передавать - используйте Chrome, инструменты разработчика, вкладка Network, правым кликом на запросе - "Copy as Curl (cmd)".

    Для тестирования скачать curl for windows, крутить запрошенный текст в командной строке, по одному убирая параметры -H

    Еще будет полезен ключик -k, чтобы не ругалось на сертификаты:
    curl -k "https://...." .....

    Когда удалось вполне разумно руками получать результат, пишите то же самое на PHP. PHP cURL справляется на ура.

    Соответственно вся логика - запрашивается страница с нужными заголовками, если отдали html, то проанализировать значение куки, поправить в запросе и переслать заново. Для совсем первого запроса запрашивать без куки, для следующих - сохранять.
    Ответ написан
    2 комментария
  • Ctrl+shift+r через php можно?

    @remzalp
    Программер чего попало на чем попало
    Самый простой вариант для самой страницы - в заголовках отдавать требование не кэшировать.

    php.net/manual/ru/function.header.php
    <?php
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Дата в прошлом
    ?>


    Для подключаемых файлов самый надежный вариант уже предложил 65536, просто менять номер в ссылке. Можно вообще так (пример):
    <link rel="stylesheet" href="1.css?<php echo rand(); ?>">


    тогда будет для каждого запроса страницы новая ссылка на статику.
    Ответ написан
    Комментировать
  • Кириллические адреса в Wordpress?

    @remzalp
    Программер чего попало на чем попало
    1. ищется запись с permalink "как-напиться-недорого", по ней извлекается ид и прочая информация, дата служит больше для красоты URL, для разных дат permalink всё-равно совпадать не может

    2. Добро пожаловать в мир уникода. Всё нормально. Хотите красоты - ставьте модуль транслита, который будет генерировать permalink только с английскими символами, тогда ссылка не будет конвертиться в неправильные символы.
    Более того адрес "http://сайт.рф" при копировании в буфер обмена станет "xn--80aswg.xn--p1ai"
    Ответ написан
    Комментировать
  • Как оптимизировать данный код?

    @remzalp
    Программер чего попало на чем попало
    1. Логиниться для каждого поста смысл нет. Блок с авторизацией вынесите выше сразу после if ($postsToUp), до foreach
    2. Для отладки имеет смысл сохранять полученные страницы, плюс желательно со временем, когда именно получена.
    3. Все телодвижения с curl вынести в отдельную функцию, читабельность резко подскочит
    4. Забор из закрывающих фигурных скобок намекает, что слишком много в одну функцию запихали, уже пора разбивать на отделньые.

    Возможно ошибка происходит со стороны сервера, так что сохраняйте все страницы и смотрите, после чего перестало работать. Обработку ошибок в принципе не вижу. Единственное место, где что-то может пойти не так - if (!empty($cookies['member_id'])) - если куки не найдены, то молча завершает работу. Пусть хотя бы скажет - почему
    Ответ написан
  • Как избавится от спам вируса?

    @remzalp
    Программер чего попало на чем попало
    Подключи этот модуль:
    https://httpd.apache.org/docs/current/mod/mod_stat...
    покажет чем занят каждый воркер, там уже сможешь более прицельно искать виновника.

    Второй вариант, настроить лог
    httpd.apache.org/docs/2.2/mod/mod_log_config.html
    Там есть замечательный параметр:
    %T The time taken to serve the request, in seconds.
    Тоже даст список подозреваемых.

    Даже просто поиск по всем файлам по "eval(" в случае php даст тебе список всех подозрительных файлов. Но в любом случае пока дырка всё еще есть, то повторное заражение не за горами, надо искать причины.
    Ответ написан
  • RDP для WINE или виртуалить?

    @remzalp
    Программер чего попало на чем попало
    У консультанта есть вполне честное решение под линукс.

    Ключевое отсюда:
    Придётся воспользоваться помощью ближайшего к вам партнёра сети КонсультантПлюс. Главное что от него потребуется - бинарник conslin, собранный под соответствующую архитектуру, который согласно прилагаемой к нему инструкции помещают в /usr/local/bin и запускают с правами суперпользователя. Далее откройте cons.exe из-под WINE c ключами /LINUX /REG и дайте представителю партнёра зарегистрировать ваш экземпляр на этом компьютере.
    Ответ написан
    3 комментария
  • Какие существуют способы проверки php функции mail() на отправку письма?

    @remzalp
    Программер чего попало на чем попало
    Самый простой вариант решения проблемы - использовать внешний SMTP сервер (гугл, яндекс?) и библиотеку отправки писем через SMTP.

    В этом случае как минимум часть ошибок уровня smtp сервера будет получена.
    Ответ написан
    Комментировать
  • Почему Arduino Leonardo Ethernet не коннектиться к роутеру?

    @remzalp
    Программер чего попало на чем попало
    Ставим WireShark на компьютер, запускаем.
    Втыкаем леонардо напрямую в комп (кроссовый шнурок потребуется, интересно?), смотрим пролетевшие пакеты.
    Втыкаем леонардо в роутер1, смотрим пролетевшие пакеты.
    Втыкаем леонардо в роутер2, смотрим пролетевшие пакеты.
    Ищем разницу.

    Если столкнётесь с тем, что ваш компьютер не видит пакеты, направленные роутером в сторону леонардо, можно соорудить примитичную "прослушку", правда она либо передающиеся, либо принимаемые пакеты за раз ловит, ну или использовать две сетевых карты.
    www.instructables.com/id/Make-a-Passive-Network-Tap

    Для фильтрации именно DHCP можно указать "bootp" в поле фильтра.

    На данный момент я вообще не понял, зачем DHCP, если сказано, что прописан статический адрес.
    Ответ написан
  • Как посчитать количество элементов?

    @remzalp
    Программер чего попало на чем попало
    SELECT COUNT(*) FROM (
       SELECT ff_id FROM test ORDER BY date_added LIMIT 10 
    ) test_outer
    WHERE ff_id=2
    
    именование результирующей таблицы обязательно.
    Ответ написан
    Комментировать
  • Безопасно ли открывать порт mysql в мир?

    @remzalp
    Программер чего попало на чем попало
    Да, небезопасно, альтернативы
    1. поднять VPN, доступ к мускулю снаружи только по впн, не напрямую (резать в iptables)

    2. (сам использую) пускать разрабов с пробросом портов по ssh. Себе настроил путти (батник):
    putty.exe -ssh user@site.ru -L 3396:localhost:3306
    в итоге на компе любой удобный и привычный софт можно использовать, указывая в качестве сервера БД
    127.0.0.1:3396, со стороны сервера они выглядят как коннекты с localhost
    На сервере завести отдельного юзера с минимальнейшими правами - ему даже входить не обязательно в шелл, только до локального сокета достучаться, плюс настроить авторизацию по сертификату для полного удобства.

    дополнительный бонус - с использованием ключа "-C" будет еще и компрессия данных, что может приятно повлиять на скорость передачи хорошо сжимаемых данных.
    Ответ написан
    2 комментария
  • Каким образом генерируется изображение?

    @remzalp
    Программер чего попало на чем попало
    второй компонент - JS, с использованием объекта Canvas динамически рисует.
    Ответ написан
    Комментировать