Заметки любителя экспериментов

Позднее Ctrl + ↑

Проверка диска и ее последствия

Итак, злополучный ноутбук все-таки снова решил уйти в цикличное обновление системы. Методы, используемые ранее, не помогли, поэтому было принято решение о переустановке системы.
С некоторых пор я поступаю следующим образом. Загружаюсь с другого диска, создаю в корне диска С: папку с текущей датой. Если есть другие логические диски, то использую их. Затем в эту папку переношу все файлы, которые расположены на системном разделе. После этого можно устанавливать систему, конечно без форматирования раздела. Всю информацию, файлы, данные реестра позже можно вытащить из этой папки. Этот способ сильно экономит время на переустановку системы. Ну и, конечно, нужно быть внимательным при всем этом, как обычно.
Так как было подозрение на некорректную работу жесткого диска, то сначала решил его проверить. Для начала использовал встроенный chkdsk с параметрами /f и /r. Он ошибок не нашел, но ему большого доверия все-таки нет. На очереди была программа из репозитария linux под именем badblocks. Зная, что одна дополнительная буква в параметрах запросто может снести все данные, очень внимательно следил за тем, что ввожу. Позднее, наблюдая за процессом, четко запомнил строчку «read-only test» — все верно, данные не будут тронуты. Проверка этой программой также не выявила никаких проблем.
Настала очередь установить систему. Тут все было, как обычно — ввод, выбор раздела, ввод... И только после начала установки я понял, что максимальный размер диска был равен его свободному объему. Что значило, что на разделе нет никаких файлов. К сожалению, я не остановил процесс установки... :-(
После того, как система была установлена, первым делом начал искать папки с «резервными копиями». Их не было. Самыми важными среди них были базы 1С, СБИС и некоторые документы.
Загрузился с диска R-Studio Emergency и запустил сканирование диска. Программа нашла обе папки (их было две): первая, наиболее старая, была с пометкой «удалена», вторая же отображалась как обычная, не удаленная. Но так как эта программа работала в демо-режиме, то сделать я ничего не смог, поэтому пришлось загружаться в систему и оттуда уже запускать взломанную версию программы.
По итогу мне удалось восстановить каталоги с дистрибутивами 1С, парой баз и папку со СБИС. Документов не было. Базы данных 1С перед этим «ремонтом» были скопированы пользователем на внешний диск, поэтому эту часть можно практически не учитывать. СБИС, к сожалению, использовал сертификат для аутентификации, который хранился в реестре. И доступ к которому я также потерял.

Эх, морозы — 2

Не всем повезло при наступлении холодов. Удалось вытащить видео у знакомых в офисе. Не зря я им все-таки поставил видеонаблюдение. По итогу: минус один компьютер и собственно камера видеонаблюдения. Хотя последнее не точно, нужна дополнительная проверка.
Прорвало батарею центрального отопления, практически весь второй этаж залило кипятком. Началось все в одиннадцатом часу вечера пятницы, сам потоп заметили на первом этаже только в 4 утра.

Эх, морозы

Третий день температура держится в районе -35-37 градусов. Начинаешь замечать некоторые моменты по прошествии этого времени. То, что транспорта на улице стало меньше, было вполне ожидаемо. Руки-ноги стали быстро мерзнуть — тоже нормально. Но некоторые моменты неприятно удивили.
Курить на лоджию стал выходить в комбинезоне и толстовке. После наступления холодов дверь перестала фиксироваться в закрытом положении и норовит все время открыться. Приходится удерживать ее за ручку изнутри. Буквально вчера только понял почему она себя так ведет. Оказалось, что она выгнулась в середине в сторону квартиры. Верхний и нижний края прилегают плотно, а в середине двери образуется промежуток почти в сантиметр между дверью и косяком.
Как следствие, пока стою и курю, держу за ручку изнутри. Пластиковая, которая была изначально, сломалась много лет назад, но тогда я нашел выход и вкрутил ограничитель хода двери. Смотрится нормально, закрывать удобно, стоит копейки. В общем, понравилось. Также вчера утром заметил, что побаливает средний палец. Удивился, потому что вроде бы ничего не делал, что могло бы его повредить, тем более в таком месте. Как обычно, «забил» — и не такое проходило. Чуть позже понял, что болит не один палец и тоже в «нестандартном» месте... Сложив дважды два, пришел к выводу, что тупо получил тепловой ожог из-за этого самого ограничителя. Он металлический, на холоде остывает так, что за пару минут, пока я его держу, запросто можно повредить верхний слой кожи. Пришлось обмотать его тряпкой. Летом, если не забуду, постараюсь поменять на какой-нибудь пластик. Раньше не замечал за ним такой «агрессии» просто потому, что зимы выдавались теплые, ниже -20 градусов температура не падала почти никогда.
Описанный ранее зимний комплект, можно сказать, оказался на высоте. До этих пор в нем было жарко и только последние дни становилось все прохладней. В целом, на улице в нем тепло и сейчас, с учетом того, что на ногах у меня только легкие трико и сверху комбинезон. Перчатки пришлось одевать лыжные — они намного теплей. А вот ноги в купленных в начале зимы ботинках стали замерзать. И, главное, что все руки не доходят найти в шкафу шерстяные носки.

Доступ к Samsung Smart TV

Проба пера

Когда мне становится скучно, в голову приходят самые разные мысли...
В этот раз в голове мелькнула мысль просканировать телевизор на открытые порты. Результат был положительным:

Starting Nmap 5.51 ( http://nmap.org ) at 2018-01-21 20:41 +07
Nmap scan report for 192.168.1.7
Host is up (0.0026s latency).
Not shown: 991 closed ports
PORT      STATE SERVICE
7676/tcp  open  imqbrokerd
8001/tcp  open  vcom-tunnel
8002/tcp  open  teradataordbms
8080/tcp  open  http-proxy
9999/tcp  open  abyss
32768/tcp open  filenet-tms
32769/tcp open  filenet-rpc
32770/tcp open  sometimes-rpc3
32771/tcp open  sometimes-rpc5

Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

Номера портов, по большей части не знакомы, но 8001, 8002, 8080 и 9999 наводят на определенные мысли. Пробуем получить информацию по ним...

$ curl -v http://192.168.1.7:7676
* Rebuilt URL to: http://192.168.1.7:7676/
*   Trying 192.168.1.7...
* TCP_NODELAY set
* Connected to 192.168.1.7 (192.168.1.7) port 7676 (#0)
> GET / HTTP/1.1
> Host: 192.168.1.7:7676
> User-Agent: curl/7.57.0-DEV
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 400 Bad Request 
< CONTENT-TYPE: text/xml; charset="utf-8" 
< SERVER: UPnP/1.1 Samsung AllShare Server/1.0 
< CONTENT-LENGTH: 417 
< 
* Closing connection 0
<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>402</errorCode><errorDescription>Invalid Args</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope>

Пустые ответы приводить не буду, только те, по которым получен какой-либо результат. Проверяем порт 8001:

$ curl -v http://192.168.1.7:8001
* Rebuilt URL to: http://192.168.1.7:8001/
*   Trying 192.168.1.7...
* TCP_NODELAY set
* Connected to 192.168.1.7 (192.168.1.7) port 8001 (#0)
> GET / HTTP/1.1
> Host: 192.168.1.7:8001
> User-Agent: curl/7.57.0-DEV
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 401 Unauthorized
< access-control-allow-origin: *
< content-length: 29
< 
* Closing connection 0
<html><body>401</body></html>

На очереди 8002:

$ curl -v https://192.168.1.7:8002
* Rebuilt URL to: https://192.168.1.7:8002/
*   Trying 192.168.1.7...
* TCP_NODELAY set
* Connected to 192.168.1.7 (192.168.1.7) port 8002 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /usr/share/ca-certificates/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, Server hello (2):
* SSL certificate problem: self signed certificate in certificate chain
* stopped the pause stream!
* Closing connection 0
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

Теперь очередь порта 8080:

$ curl -v http://192.168.1.7:8080
* Rebuilt URL to: http://192.168.1.7:8080/
*   Trying 192.168.1.7...
* TCP_NODELAY set
* Connected to 192.168.1.7 (192.168.1.7) port 8080 (#0)
> GET / HTTP/1.1
> Host: 192.168.1.7:8080
> User-Agent: curl/7.57.0-DEV
> Accept: */*
> 
< HTTP/1.1 404 Not Found
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: Content-Type
< Content-Type: text/html
< Content-Length: 345
< Date: Sun, 21 Jan 2018 04:14:36 GMT
< Server: WebServer
< 
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>404 - Not Found</title>
 </head>
 <body>
  <h1>404 - Not Found</h1>
 </body>
</html>
* Connection #0 to host 192.168.1.7 left intact

Если использовать SSL, то ответ тоже не заставит себя ждать:

$ curl -v https://192.168.1.7:8080
* Rebuilt URL to: https://192.168.1.7:8080/
*   Trying 192.168.1.7...
* TCP_NODELAY set
* Connected to 192.168.1.7 (192.168.1.7) port 8080 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /usr/share/ca-certificates/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 192.168.1.7:8080 
* stopped the pause stream!
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 192.168.1.7:8080

И, наконец, 9999:

$ curl -v https://192.168.1.7:9999
* Rebuilt URL to: https://192.168.1.7:9999/
*   Trying 192.168.1.7...
* TCP_NODELAY set
* Connected to 192.168.1.7 (192.168.1.7) port 9999 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /usr/share/ca-certificates/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):

* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 192.168.1.7:9999 
* stopped the pause stream!
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 192.168.1.7:9999

Судя по всему, на порту 7676 «висит» какой-то UPNP. Порты 8002 и 9999 обмениваются данными через SSL, 8080 похож на веб-сервер, а 8001 требует авторизацию.
Если открыть ТВ в браузере на порту 8002, то можно получить визуальные данные о сертификате. В принципе, самое интересное, что можно из него вычленить — срок действия в 20 лет и что сертификат является самоподписанным.
Порывшись в интернете, понял, что на эту тему достаточно мало материала. Впрочем, сначала нужно просмотреть SamsungSmartSDK, упомянутый в сертификате. Возможно, что там найдется какая-то дополнительная информация.
Кстати, теоретически, есть возможность включить ТВ с ипользованием технологии Wake-On-LAN. Стандартный способ, видимо, не проходит — по крайне мере на «magic packet» он не отозвался. Но пример кода, реализующего эту возможность, я встретил.

Добавляем каналы для ТВ

Смотреть торренты научился. Но человеку же всегда мало того, что он уже имеет. И мне захотелось увеличить список доступных каналов, желательно в HD качестве. И просматривать подключенные камеры видеонаблюдения. Чем и занимаюсь последнее время когда есть желание и время.
С дополнительными каналами оказалось все как-то просто: установил пару пакетов udpxy и xupnpd на роутер. Первый пакет конвертирует udp трафик в http, второй позволяет открывать плейлисты m3u на телевизоре или любом другом устройстве. Например, на смартфоне или компьютере. Но, как обычно, не обошлось без ложки дегтя — достаточно неудобно переключать каналы на телевизоре. Хотелось бы, чтобы работало как с обычными — нажал кнопку «Канал+» и переключился на следующий. Сейчас же приходится нажимать на «Ввод», переходить на кнопку «Далее» и снова нажимать «Ввод». Возможно, что найду в списке доступных приложений какое-нибудь с более удобным переключением.
С видеокамерой не так все просто — на любую попытку подсунуть телевизору поток он отвечает, что не может его воспроизвести. Что я только не делал... Видеорегистратор отдает RTSP-поток через порт 554, причем нестандартного разрешения. При этом еще требуется указать логин и пароль, чтобы подключиться к потоку. На сервере установлена программа motion, которая у меня занимается рассылкой оповещений и фото, сделанных камерой во время обнаружения движения. Но, даже указав данные потока, которые она выдает в сеть, не получилось заставить ТВ отображать его — снова получил ошибку. Возможно, что после приведения разрешения к стандартному FullHD и смены кодека, и получится показать картинку с камеры на телевизоре. Но для этого нужно заставить сервер перекодировать сигнал, то есть создаем дополнительную нагрузку на сервер.

Забываю тебя, забываю...

Еще в студенчестве наткнулся в библиотеке сестры на книжку со стихами Татьяны Долгополовой. И, как зачастую бывает в период юношества, «зацепили» они меня. Сам до этого пытался писать, пока не понял, что это не мое..
Ниже пара ее стихов, вспомнились на фоне общения с одной из лучших подруг.

Сейчас. Докурю и встану.
Морщинки смахну с лица.
Надену свои сандалии,
Пришив к ним по два крыла.
Сейчас. Застегну лишь пряжки.
Вот левый немного жмет.
Сейчас, еще две затяжки...
Ну все, мне пора. Вперед.
А там, впереди, — прибой.
Там я остужу рассудок.
Окошко за мной закрой.
И погаси окурок.

* * *

Забываю тебя, забываю
В череде постоянных разлук.
В нашем сквере уже не бываю —
Не могу, не хочу, недосуг.
Шевелю облетевшие листья —
Недалекого холода весть.
Я храню твои нежные письма,
Только сил не найду —
перечесть.

DLNA в локальной сети

Меня не покидала мысль, что телевизор поддерживает DLNA, несмотря на то, что на официальном сайте это не указано. Зато было указано на нескольких других. Попытка не пытка...
Есть у меня переделанный роутер D-Link DIR-825 с установленной OpenWrt. Внутрь встроен жесткий диск, на котором располагается собственно система и множество других программ. В частности, клиент Transmission. Это очень удобно — с любого устройства можно поставить торрент на закачку. Плюс к этому он все равно работает круглые сутки, пусть скачивает :-)
Прочитав днем про настройку DLNA на OpenWrt, подключился к роутеру и  установил пакет luci-i18n-minidlna-en, который потянул за собой собственно сервер DLNA и другие необходимые пакеты. Настройка была минимальной: задал каталоги где искать видео- и аудиофайлы, куда писать логи и каталог с кэшем. Ну и, конечно, запустил его. Поначалу нагрузка на роутер сильно возросла: сервер «сожрал» почти 60% процессорного времени и почти половину оперативной памяти. Из всех других пакетов, которые я ставил, ни один столько не забирал себе. Понадеявшись на то, что это только на время поиска файлов, отключился, чтобы вечером заняться этим вопросом уже дома.
Мои надежды оправдались — после завершения поиска нагрузка стала почти нулевой. Но меня уже больше интересовало как телевизор отреагирует (и отреагирует ли вообще?) на наличие DLNA сервера в локальной сети. Но сомнения оказались напрасны — все оказалось намного проще. Телевизор не только обнаружил сервер в сети, но и сразу отобразил его в списках доступных источников. Немного напрягло только то, что приходится «продираться» через кучу каталогов, чтобы найти нужное видео, но тут уже ничего не поделаешь, видимо.
В конечном результате я достиг того, чего хотел — теперь нет необходимости копировать скачанный торрент на флэшку, подключать её к телевизору и только тогда начинать смотреть фильм. Сейчас можно просто открыть роутер на телевизоре, выбрать нужный фильм и начать просмотр. С учетом того, что я не поленился подключить ТВ кабелем к роутеру, «лагов» пока что не наблюдается, скорость приличная. Но тут еще буду экспериментировать.
Днем ранее, кстати, также удалось вывести содержимое экрана смартфона на телевизор, включив на первом режим беспроводного дисплея. Смартфон тут же просканировал и нашел телевизор. Оставалось только подтвердить сопряжение устройств на самом ТВ.

Эксперименты с охраной

Опишу предыдущее состояние системы.

  1. Есть не один десяток охранно-пожарных систем (ОПС) типа «Гранит», которые при открытии дверей на объекте шлют смс оператору на центральном пульте. Тот, в свою очередь, либо вызывает ГБР (группа быстрого реагирования), либо «пропускает» событие. В целях резервирования сообщения с «Гранитов» рассылаются не на один номер телефона, а на несколько: охрана и руководство. По моим прикидкам это, минимум, три номера. Скорее всего, их больше. По расходам это выходит более 8 тысяч в месяц. Сумма небольшая, но, если есть возможность, то почему бы ее не уменьшить? «Плюсом» будет то, что получатели смогут отключить оповещения, что в случае с смс почти невозможно. Из текущих «минусов» — постоянные глюки то с телефоном, то с программой синхронизации смс на компьютере. Раз в несколько дней приходится или перезапускать программу, или перезагружать телефон.
  2. Также существует сервер видеонаблюдения, который в постоянном режиме пишет порядка полусотни камер, расположенных на территории завода и не только. Старый сервер, несмотря на свою мощность, потихоньку выходит из строя. БОльшая часть дисков уже была заменена на более специализированные под данную функцию, но периодические выходы из строя начинают утомлять. Особенно это стало заметно, когда человек, занимающийся видеонаблюдением на заводе, уехал на несколько месяцев в отпуск — накопил за несколько лет работы. Он, конечно, оставил вместо себя человека, но он, во-первых, не всегда находится на территории, а во-вторых, делает всё «на отьебись». Что лично меня, например, не устраивает.

Пару месяцев назад был куплен новый сервер под видеонаблюдение. По тестам он несколько превосходит текущий, но последний построен на базе i7-3770, новый же — на базе Xeon (не помню сейчас какой именно). Новый установил параллельно существующему, был установлен Linux с графической оболочкой и тестовая версия сервера видеонаблюдения. Не обошлось, конечно, без бубна и небольших танцев, но, в итоге, все заработало как нужно. В таком состоянии он и был оставлен до конца недели на тестирование. Лично мне Linux больше импонирует, как более устойчивая и быстрая система, по сравнению с Windows. Конечно, у меня свои требования — по ним он полностью выигрывает.
Я не зря упомянул в начале «Граниты». Перед новым годом у меня, в порядке не совсем трезвых размышлений возникла мысль несколько сократить расходы на смс, путем установки какого-то компьютера, на который они и будут приходить. То есть, на данном шаге мы сокращаем количество сообщений, которые рассылают «Граниты» до одного за раз. Затем компьютер уже посредством интернета дублирует эти сообщения на другие телефоны в любой мессенджер: Telegram, Whatsapp и т. п. Благо, что практически каждый человек нынче пользуется хотя бы одним из них.
Но, увы, так как я был не совсем трезв, то поутру вся выстроенная мной схема «убежала» из головы, остался только принцип построения. Благо, что я в порыве воодушевления позвонил товарищу, который занимается установкой и обслуживанием этих «Гранитов» и примерно рассказал, что я хочу получить. Через день он мне напомнил об этом, заодно и прояснили некоторые моменты.
Суть заключается в том, что на какой-то компьютер устанавливается Asterisk, который и занимается приемом и пересылкой сообщений в мессенджеры. Тем более, что знакомый попросил меня разобраться с этой системой, чтобы в дальнейшем внедрить ее на своем предприятии.
Если сервер видеонаблюдения на Linux покажет свою «состоятельность», то почему бы на него не возложить и функции обработки сообщений от ОПС?
В то же время у себя дома вернулся к старой схеме, только немного ее изменив. Как писал ранее, перед новым годом был куплен регистратор, к которому была подключена камера более высокого качества. Регистратор может рассылать оповещения только на почту и, к тому же, только в текстовом виде, что меня не устраивало. Сообщений на одно событие могло быть несколько, по какой причине он разделял одно событие на несколько — неизвестно. Пришлось снова запустить motion, установленный на сервере, брать поток с регистратора и тогда я смог получить и картинку события и текст. Считаю огромным «плюсом» motion то, что он позволяет при возникновении какого-либо события (обнаружено движение, завершена запись видеофайла, завершено сохранение скриншота и т. п.) запустить на выполнение любой внешний скрипт, в котором уже можно делать все, что угодно. Как бонус, можно будет провести кабель от регистратора на телевизор и в прямом эфире просматривать что творится в коридоре.

Интернет от «Игра-сервис»

Почти год назад завод частично отказался от услуг «Интертакса» и подключился к «Игре-сервис». Экономически это был обоснованный переход — взамен возможности предоставления своих услуг на территории завода они предложили бесплатный и безлимитный интернет для него. За время пользования интернетом было около 6 отключений: примерно половина из них продолжалась более 3 часов, остальные — менее часа. В остальном претензий к этому провайдеру нет, интернет работает стабильно. В то же время, насколько мне известно, за прошедший год отключений у «Интертакса» не было.
У самих арендаторов есть выбор которого из провайдеров они хотят использовать: либо более дешевый «Игра-сервис», либо более устойчивый «Интертакс». Как правило, выбирают первый вариант. За все время только один арендатор выбрал «Интертакс», потому что стабильность связи для него была критична. Были и такие, кто считал, что «Игра-сервис» предоставляет все-таки дорогой интернет. Как правило, начинают утверждать, что на предыдущем месте они за него платили меньше. Не спорю, возможно, все зависит от того, как договоришься с провайдером.
Был всего один случай, когда вот прямо сейчас нужно было провести платежи, а интернета не было. И неизвестно было когда он появится — провайдер использовал IP-телефонию для отдела техподдержки, поэтому дозвониться к ним и получить хоть какую-то информацию было не реально, приходилось звонить на мобильный менеджеру, который с нами работает.

Выходной лоток для HP M1132

Так как делать особо нечего, всплыла у меня в голове мысль о том, что стоит поискать выходной лоток для моей МФУ-шки. Я бы сказал, «вовремя» она всплыла, с учетом того, что принтер у меня находится не первый год. Начал искать у себя в городе — нет. В других городах ценник колеблется от 1200 до 1600 рублей. Я когда увидел, чуть глаза на лоб не полезли. Где еще искать? Конечно, у китайцев. А вот у них ценник оказался более адекватным, даже если добавить за доставку — около 350 рублей. Разместил заказ и приготовился ждать долго. Это был поздний вечер. Продавец оказался очень расторопным и буквально на следующий день в почте увидел несколько сообщений: заказ отправлен, трек для отслеживания автоматически добавился в программу Почты России. Последнее немного удивило — оказалось, что треки автоматически добавляются в приложение, когда обнаруживают совпадение номера мобильного телефона.

3 января   hp   m1132   заказ   китай   лоток   почта
Ранее Ctrl + ↓