Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

telegramm api

34 views
Skip to first unread message

Stas Mishchenkov

unread,
Feb 7, 2020, 8:55:01 AM2/7/20
to
Hi, All!

Ни чего не менял и вдруг:

=== Import Windows Clipboard Start ===
[fido@BroRabbit perl]$ ./tg2fido.pl
ERROR: 500 Can't connect to api.telegram.org:443 at
/usr/lib64/perl5/WWW/Telegram/BotAPI.pm line 209.
=== Import Windows Clipboard End ===

Кто может быть виновать и что делать?

Have nice nights.
Stas Mishchenkov.

Gennadij Pastuhov

unread,
Feb 7, 2020, 9:10:01 AM2/7/20
to
Рад всех приветствовать! А особенно - Stas!

Пятница февраля 07 20 16:48 Stas Mishchenkov писал к All:

SM> Ни чего не менял и вдруг:
SM> === Import Windows Clipboard Start ===
SM> [fido@BroRabbit perl]$ ./tg2fido.pl
SM> ERROR: 500 Can't connect to api.telegram.org:443 at
SM> /usr/lib64/perl5/WWW/Telegram/BotAPI.pm line 209.
SM> === Import Windows Clipboard End ===
SM> Кто может быть виновать и что делать?

Чебурнет?

... Jonny wanna live

Stas Mishchenkov

unread,
Feb 7, 2020, 9:35:01 AM2/7/20
to
Hi, All!

07 фев 20 16:48, Stas Mishchenkov -> All:

SM> Ни чего не менял и вдруг:

SM> === Import Windows Clipboard Start ===
SM> [fido@BroRabbit perl]$ ./tg2fido.pl
SM> ERROR: 500 Can't connect to api.telegram.org:443 at
SM> /usr/lib64/perl5/WWW/Telegram/BotAPI.pm line 209.
SM> === Import Windows Clipboard End ===

SM> Кто может быть виновать и что делать?

При это нормально работает

=== Import Windows Clipboard Start ===
#!/bin/sh

TOKEN=*********************************************
URL="https://api.telegram.org/bot$TOKEN/getUpdates"
curl -s -X POST $URL -d offset=414362290> upd.txt
=== Import Windows Clipboard End ===

Alexey Vissarionov

unread,
Feb 7, 2020, 11:00:01 AM2/7/20
to
Доброго времени суток, Stas!
07 Feb 2020 16:48:14, ты -> All:

SM> Ни чего не менял и вдруг:
SM> [fido@BroRabbit perl]$ ./tg2fido.pl
SM> ERROR: 500 Can't connect to api.telegram.org:443
SM> Кто может быть виновать и что делать?

Это твоего говноробота там наконец-то забанили...


З.Ы. (Замечу Ышо): понятно, что причина совсем другая, но все равно хорошо.

--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Отпуск - это когда утром суббота, днем воскресенье, а вечером пятница

Stas Mishchenkov

unread,
Feb 8, 2020, 11:35:01 AM2/8/20
to
Hi, Gennadij!

07 фев 20 17:07, Gennadij Pastuhov -> Stas Mishchenkov:

SM>> Ни чего не менял и вдруг:
SM>> === Import Windows Clipboard Start ===
SM>> [fido@BroRabbit perl]$ ./tg2fido.pl
SM>> ERROR: 500 Can't connect to api.telegram.org:443 at
SM>> /usr/lib64/perl5/WWW/Telegram/BotAPI.pm line 209.
SM>> === Import Windows Clipboard End ===
SM>> Кто может быть виновать и что делать?

GP> Чебурнет?

Похоже, таки блокировщики добрались. Так-то у меня оно по IPv6 открывается, а в
перле пока по умолчанию он не поддерживается.

Stas Mishchenkov

unread,
Feb 8, 2020, 12:20:02 PM2/8/20
to
Hi, Gennadij!

08 фев 20 19:23, Stas Mishchenkov -> Gennadij Pastuhov:

SM>>> Ни чего не менял и вдруг:
SM>>> === Import Windows Clipboard Start ===
SM>>> [fido@BroRabbit perl]$ ./tg2fido.pl
SM>>> ERROR: 500 Can't connect to api.telegram.org:443 at
SM>>> /usr/lib64/perl5/WWW/Telegram/BotAPI.pm line 209.
SM>>> === Import Windows Clipboard End ===
SM>>> Кто может быть виновать и что делать?

GP>> Чебурнет?

SM> Похоже, таки блокировщики добрались. Так-то у меня оно по IPv6
SM> открывается, а в перле пока по умолчанию он не поддерживается.

Блин, мозги сломал. Как WWW::Telegram::BotAPI.pm научить IPv6 пользоваться?

Eugene Grosbein

unread,
Feb 9, 2020, 12:50:01 AM2/9/20
to
08 февр. 2020, суббота, в 20:13 NOVT, Stas Mishchenkov написал(а):

SM>> Похоже, таки блокировщики добрались. Так-то у меня оно по IPv6
SM>> открывается, а в перле пока по умолчанию он не поддерживается.
SM> Блин, мозги сломал. Как WWW::Telegram::BotAPI.pm научить IPv6
SM> пользоваться?

Похоже, что оно работает поверх модуля LWP, который создаёт
сокеты через IO::Socket::INET и чтобы всю эту фигню
заставить работать с IPv6, есть вот такая шняга:

https://metacpan.org/pod/Net::INET6Glue::INET_is_INET6

Так что попробуй установить этот модуль Net::INET6Glue,
а затем просто добавить в свой код:

use Net::INET6Glue::INET_is_INET6;

Eugene

Stas Mishchenkov

unread,
Feb 10, 2020, 12:25:02 PM2/10/20
to
Hi, Eugene!

09 фев 20 12:38, Eugene Grosbein -> Stas Mishchenkov:

SM>>> Похоже, таки блокировщики добрались. Так-то у меня оно по IPv6
SM>>> открывается, а в перле пока по умолчанию он не поддерживается.
SM>> Блин, мозги сломал. Как WWW::Telegram::BotAPI.pm научить IPv6
SM>> пользоваться?

EG> Похоже, что оно работает поверх модуля LWP, который создаёт
EG> сокеты через IO::Socket::INET и чтобы всю эту фигню
EG> заставить работать с IPv6, есть вот такая шняга:

EG> https://metacpan.org/pod/Net::INET6Glue::INET_is_INET6

EG> Так что попробуй установить этот модуль Net::INET6Glue,
EG> а затем просто добавить в свой код:

EG> use Net::INET6Glue::INET_is_INET6;

=== Import Windows Clipboard Start ===
#!/usr/bin/perl
use Net::INET6Glue::INET_is_INET6;
use LWP::Simple;

print get( 'http://ipv6.google.com' );
# работает.

print get( 'https://api.telegram.org:443' );
# не работает.
=== Import Windows Clipboard End ===

Спасибо. Поставил. Не помгает. Может дело в https?

Eugene Grosbein

unread,
Feb 10, 2020, 9:15:02 PM2/10/20
to
10 февр. 2020, понедельник, в 20:18 NOVT, Stas Mishchenkov написал(а):

SM> print get( 'https://api.telegram.org:443' );
SM> # не работает.
SM> === Import Windows Clipboard End ===
SM> Спасибо. Поставил. Hе помгает. Может дело в https?

Посмотри пакетным сниффером типа Wireshark, уходит ли запрос
на 443-й порт и какой-нибудь адрес Ipv4 или IPv6 и если да,
то на какой?

Eugene
--
Все любят естественный наркотик

Stas Mishchenkov

unread,
Feb 12, 2020, 5:40:01 AM2/12/20
to
Hi, Eugene!

11 фев 20 09:01, Eugene Grosbein -> Stas Mishchenkov:

SM>> print get( 'https://api.telegram.org:443' );
SM>> # не работает.
SM>> === Import Windows Clipboard End ===
SM>> Спасибо. Поставил. Hе помгает. Может дело в https?

EG> Посмотри пакетным сниффером типа Wireshark, уходит ли запрос
EG> на 443-й порт и какой-нибудь адрес Ipv4 или IPv6 и если да,
EG> то на какой?

Вот сеййчас совсем стало не понятно. Получается, что от нас туда все уходит и
даже ответы приходят, а соединение установить не получается?

=== Import Windows Clipboard Start ===
[fido@BroRabbit ~]$ sudo tcpdump -i enp4s0 |grep 2001:67c:4e8:f004::9
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp4s0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:54:01.319992 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
2001:67c:4e8:f004::9.https: Flags [S], seq 1964445604, win 28800, options [mss
1440,nop,nop,sackOK,nop,wscale 7], length 0
12:54:01.405184 IP6 2001:67c:4e8:f004::9.https >
2001:470:dcd0:0:f1d0:2:460:58.49614: Flags [S.], seq 3173036458, ack
1964445605, win 28800, options [mss 1220,nop,nop,sackOK,nop,wscale 10], length
0
12:54:01.405234 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
2001:67c:4e8:f004::9.https: Flags [.], ack 1, win 225, length 0
12:54:01.405719 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
2001:67c:4e8:f004::9.https: Flags [P.], seq 1:212, ack 1, win 225, length 211
12:54:01.487954 IP6 2001:67c:4e8:f004::9.https >
2001:470:dcd0:0:f1d0:2:460:58.49614: Flags [.], ack 212, win 30, length 0
12:54:01.488013 IP6 2001:67c:4e8:f004::9.https >
2001:470:dcd0:0:f1d0:2:460:58.49614: Flags [P.], seq 1:8, ack 212, win 30,
length 7
12:54:01.488028 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
2001:67c:4e8:f004::9.https: Flags [.], ack 8, win 225, length 0
12:54:01.488091 IP6 2001:67c:4e8:f004::9.https >
2001:470:dcd0:0:f1d0:2:460:58.49614: Flags [F.], seq 8, ack 212, win 30, length
0
12:54:01.488372 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
2001:67c:4e8:f004::9.https: Flags [F.], seq 212, ack 9, win 225, length 0
12:54:01.577105 IP6 2001:67c:4e8:f004::9.https >
2001:470:dcd0:0:f1d0:2:460:58.49614: Flags [.], ack 213, win 30, length 0
=== Import Windows Clipboard End ===

EG> Eugene
EG> --
EG> Все любят естественный наркотик
EG> --- slrn/1.0.3 (FreeBSD)
EG> * Origin: RDTC JSC (2:5006/1@fidonet)
EG> SEEN-BY: 50/12 16 109 250/25 400/814 450/1024 451/30 31 460/58 777 1124
EG> 5858
EG> SEEN-BY: 463/68 466/50 467/70 5000/111 5001/100 5003/17 5005/49 5006/1
EG> SEEN-BY: 5010/352 5015/42 46 5019/42 5020/113 400 526 545 715 828 830 846
EG> 848
EG> SEEN-BY: 5020/1042 1477 2047 2140 2332 4441 5545 12000 5022/128 5025/3
EG> 5026/99
EG> SEEN-BY: 5030/115 500 1081 1957 2404 5035/85 5036/26 5049/1 162 5051/36 44
EG> SEEN-BY: 5053/57 58 400 5054/8 30 89 5055/37 5059/37 5064/56 5066/18
EG> 5080/68
EG> SEEN-BY: 5080/102 172 5083/1 444 5085/13 5095/20 6090/1
EG> @PATH: 5006/1 5080/102 5020/1042 4441 545 460/58

Eugene Grosbein

unread,
Feb 12, 2020, 8:45:01 AM2/12/20
to
12 февр. 2020, среда, в 12:52 NOVT, Stas Mishchenkov написал(а):

SM>>> print get( 'https://api.telegram.org:443' );
SM>>> # не работает.
SM>>> === Import Windows Clipboard End ===
SM>>> Спасибо. Поставил. Hе помгает. Может дело в https?
EG>> Посмотри пакетным сниффером типа Wireshark, уходит ли запрос
EG>> на 443-й порт и какой-нибудь адрес Ipv4 или IPv6 и если да,
EG>> то на какой?
SM> Вот сеййчас совсем стало не понятно. Получается, что от нас туда все
SM> уходит и
SM> даже ответы приходят, а соединение установить не получается?
SM> === Import Windows Clipboard Start ===
SM> [fido@BroRabbit ~]$ sudo tcpdump -i enp4s0 |grep 2001:67c:4e8:f004::9
SM> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
SM> listening on enp4s0, link-type EN10MB (Ethernet), capture size 65535 bytes
SM> 12:54:01.319992 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
SM> 2001:67c:4e8:f004::9.https: Flags [S], seq 1964445604, win 28800, options
SM> [mss
SM> 1440,nop,nop,sackOK,nop,wscale 7], length 0
SM> 12:54:01.405184 IP6 2001:67c:4e8:f004::9.https >
SM> 2001:470:dcd0:0:f1d0:2:460:58.49614: Flags [S.], seq 3173036458, ack
SM> 1964445605,
SM> win 28800, options [mss 1220,nop,nop,sackOK,nop,wscale 10], length 0
SM> 12:54:01.405234 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
SM> 2001:67c:4e8:f004::9.https: Flags [.], ack 1, win 225, length 0
SM> 12:54:01.405719 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
SM> 2001:67c:4e8:f004::9.https: Flags [P.], seq 1:212, ack 1, win 225, length
SM> 211
SM> 12:54:01.487954 IP6 2001:67c:4e8:f004::9.https >
SM> 2001:470:dcd0:0:f1d0:2:460:58.49614: Flags [.], ack 212, win 30, length 0
SM> 12:54:01.488013 IP6 2001:67c:4e8:f004::9.https >
SM> 2001:470:dcd0:0:f1d0:2:460:58.49614: Flags [P.], seq 1:8, ack 212, win 30,
SM> length 7
SM> 12:54:01.488028 IP6 2001:470:dcd0:0:f1d0:2:460:58.49614 >
SM> 2001:67c:4e8:f004::9.https: Flags [.], ack 8, win 225, length 0

https-соединение устанавливается и даже данные по нему начинают ходить.
Возможно, что AV был прав и тебя забанили на уровне протокола.
В любом случае, если бы ты аккуратно кодил и проверял все возможные
ошибки при каждой операции, ты бы уже знал причину.

Eugene
--
http://www.grosbein.net/papirosn.mp3
http://dadv.livejournal.com/2006/03/11/

Stas Mishchenkov

unread,
Feb 12, 2020, 10:50:02 AM2/12/20
to
Hi, Eugene!

12 фев 20 20:30, Eugene Grosbein -> Stas Mishchenkov:

SM>>>> print get( 'https://api.telegram.org:443' );
SM>>>> # не работает.
SM>>>> === Import Windows Clipboard End ===
SM>>>> Спасибо. Поставил. Hе помгает. Может дело в https?
EG>>> Посмотри пакетным сниффером типа Wireshark, уходит ли запрос
EG>>> на 443-й порт и какой-нибудь адрес Ipv4 или IPv6 и если да,
EG>>> то на какой?
SM>> Вот сеййчас совсем стало не понятно. Получается, что от нас туда все
SM>> уходит и даже ответы приходят, а соединение установить не получается?
SM>> === Import Windows Clipboard Start ===

[...skipped...]

EG> https-соединение устанавливается и даже данные по нему начинают
EG> ходить.

Только оттуда приходят ответы нулевой длины. Или я не внимательно читал?

EG> Возможно, что AV был прав и тебя забанили на уровне протокола.

Не работает только из перла. Из командной строки все получается. В браузере
тоже все хорошо и с другого IP тоже.

EG> В любом случае, если бы ты аккуратно кодил и проверял все возможные
EG> ошибки при каждой операции, ты бы уже знал причину.

Я использую модуль WWW::Telegram::BotAPI. Если есть ощибка, то она там, т.к.
"срабатывает" на первом же обращении к нему в моем скрипте, которое я
скопипастил из примера автора BotAPI. И да, обновление модуля не помогло.

Eugene Grosbein

unread,
Feb 12, 2020, 9:35:01 PM2/12/20
to
12 февр. 2020, среда, в 18:38 NOVT, Stas Mishchenkov написал(а):

SM> Только оттуда приходят ответы нулевой длины. Или я не внимательно читал?

Hулевой длины обычно ACK-подтверждения приёма данных. Это нормально.

EG>> Возможно, что AV был прав и тебя забанили на уровне протокола.
SM> Hе работает только из перла. Из командной строки все получается. В
SM> браузере
SM> тоже все хорошо и с другого IP тоже.

Могут различать не по IP, а по содержимому запроса.
Вопрос этот надо задавать автору модуля.

Eugene

Stas Mishchenkov

unread,
Feb 13, 2020, 3:25:01 AM2/13/20
to
Hi, Eugene!

13 фев 20 09:24, Eugene Grosbein -> Stas Mishchenkov:

EG>>> Возможно, что AV был прав и тебя забанили на уровне протокола.
SM>> Hе работает только из перла. Из командной строки все получается. В
SM>> браузере тоже все хорошо и с другого IP тоже.

EG> Могут различать не по IP, а по содержимому запроса.
EG> Вопрос этот надо задавать автору модуля.

Могут, но тут дело скорее всего именно в IPv6.

#!/usr/bin/perl
use Net::INET6Glue::INET_is_INET6;
use LWP::Simple;

print get( 'https://[2001:67c:4e8:f004::9]' );
Не работает.

print get( 'http://149.154.167.220:443' );
работает.

Оба варианта не используют BotAPI. IPv6 у меня статический, а IPv4 меняется,
впрочем, забанить всю подсеть же тоже не трудно, но пока не забанили, ну, и
может же быть такое, что у них что-то на IPv6 просто поломалось? Нужно будет с
другого адреса проверить.

Gennadij Pastuhov

unread,
Feb 13, 2020, 9:25:01 AM2/13/20
to
Рад всех приветствовать! А особенно - Stas!

Суббота февраля 08 20 20:13 Stas Mishchenkov писал к Gennadij Pastuhov:

SM>>>> Ни чего не менял и вдруг:
SM>>>> === Import Windows Clipboard Start ===
SM>>>> [fido@BroRabbit perl]$ ./tg2fido.pl
SM>>>> ERROR: 500 Can't connect to api.telegram.org:443 at
SM>>>> /usr/lib64/perl5/WWW/Telegram/BotAPI.pm line 209.
SM>>>> === Import Windows Clipboard End ===
SM>>>> Кто может быть виновать и что делать?
GP>>> Чебурнет?
SM>> Похоже, таки блокировщики добрались. Так-то у меня оно по IPv6
SM>> открывается, а в перле пока по умолчанию он не поддерживается.
SM> Блин, мозги сломал. Как WWW::Telegram::BotAPI.pm научить IPv6
SM> пользоваться?

Поднять какой-нибудь прокси?

... Jonny wanna live

Stas Mishchenkov

unread,
Feb 14, 2020, 6:10:01 AM2/14/20
to
Hi, Gennadij!

09 фев 20 00:06, Gennadij Pastuhov -> Stas Mishchenkov:

SM>> Блин, мозги сломал. Как WWW::Telegram::BotAPI.pm научить IPv6
SM>> пользоваться?

GP> Поднять какой-нибудь прокси?

Можно и прокси, но оказалось, что он им уже умеет пользоваться. Проблема где-то
в другом месте.

Konstantin Nezhbert

unread,
Feb 14, 2020, 1:45:02 PM2/14/20
to
Привет, Stas!

Ответ на сообщение Stas Mishchenkov (2:460/5858) к All, написанное 07 фев
20 в 16:48:

SM> Ни чего не менял и вдруг:

SM> === Import Windows Clipboard Start ===
SM> [fido@BroRabbit perl]$ ./tg2fido.pl
SM> ERROR: 500 Can't connect to api.telegram.org:443 at
SM> /usr/lib64/perl5/WWW/Telegram/BotAPI.pm line 209.
SM> === Import Windows Clipboard End ===

SM> Кто может быть виновать и что делать?

Вангую, что Чебурашка. У меня последнее время телеграм на телефона работать
перестает периодически (мегафон). Пишет "Соединение..." и все.

С уважением - Konstantin

Stas Mishchenkov

unread,
Feb 15, 2020, 3:10:01 AM2/15/20
to
Hi, Konstantin!

14 фев 20 21:23, Konstantin Nezhbert -> Stas Mishchenkov:

SM>> Ни чего не менял и вдруг:

SM>> === Import Windows Clipboard Start ===
SM>> [fido@BroRabbit perl]$ ./tg2fido.pl
SM>> ERROR: 500 Can't connect to api.telegram.org:443 at
SM>> /usr/lib64/perl5/WWW/Telegram/BotAPI.pm line 209.
SM>> === Import Windows Clipboard End ===

SM>> Кто может быть виновать и что делать?

KN> Вангую, что Чебурашка. У меня последнее время телеграм на телефона
KN> работать перестает периодически (мегафон). Пишет "Соединение..." и все.

Да. Глюк очень странный какой-то. Ни как не удается его однозначно
локализовать. IPv6 у меня от ураган эелектриков, но там-то как раз и не
отвечает, но почему-то только если из перла обращаюсь.

Eugene Grosbein

unread,
Feb 15, 2020, 11:10:02 AM2/15/20
to
13 февр. 2020, четверг, в 11:13 NOVT, Stas Mishchenkov написал(а):

SM> #!/usr/bin/perl
SM> use Net::INET6Glue::INET_is_INET6;
SM> use LWP::Simple;

SM> print get( 'https://[2001:67c:4e8:f004::9]' );
SM> Hе работает.

Этот адрес IPv6 фильтруют магистралы, видимо в него ресолвится
что-то попавшее в реестр РКH. Кусочек из трассировки пакетами TCP
на порт 443:

4 2a01:620:1:503d::1 0.868 ms 0.915 ms 1.092 ms
5 * * *
6 2a03:5f80:4::225:141 118.672 ms !P * *

!P значит "port unreachable". Из-за границы коннект на тот же порт
этого адреса успешно проходит.

Eugene

Stas Mishchenkov

unread,
Feb 16, 2020, 5:10:02 AM2/16/20
to
Hi, Eugene!

15 фев 20 23:02, Eugene Grosbein -> Stas Mishchenkov:

SM>> #!/usr/bin/perl
SM>> use Net::INET6Glue::INET_is_INET6;
SM>> use LWP::Simple;

SM>> print get( 'https://[2001:67c:4e8:f004::9]' );
SM>> Hе работает.

EG> Этот адрес IPv6 фильтруют магистралы, видимо в него ресолвится
EG> что-то попавшее в реестр РКH. Кусочек из трассировки пакетами TCP
EG> на порт 443:

EG> 4 2a01:620:1:503d::1 0.868 ms 0.915 ms 1.092 ms
EG> 5 * * *
EG> 6 2a03:5f80:4::225:141 118.672 ms !P * *

EG> !P значит "port unreachable". Из-за границы коннект на тот же порт
EG> этого адреса успешно проходит.

У меня туннель к ураган электрикам. Соответственно я хожу туда из-за границы, а
IPv4 адрес действительно заблокирован РКН.
Повторюсь. С IPv6 адресом я не могу соединиться только из перла. В баше все
работает.

#!/bin/bash

TOKEN=*********************************************
CHAT_ID=15347032808
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
FILEMASK="$TMPDIR/api.telegram.org.*"

if [ $(ls -1A $FILEMASK 2>/dev/null | wc -l) -gt 0 ]; then
for file in $FILEMASK
do
MESSAGE=$(cat $file)
result=`curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE" |
sed -r 's/^\{\"ok\"\:([^,]+),.*$/\1/'`
echo $result
if [ "$result" = "true" ]; then
rm -f $file
fi
done
fi

прекрасно отправляет сообщения.

#!/bin/sh

TOKEN=*********************************************
URL="https://api.telegram.org/bot$TOKEN/getUpdates"
curl -s -X POST $URL -d offset=0> upd.txt

Прекрасно получает новые...

Eugene Grosbein

unread,
Feb 17, 2020, 2:30:01 AM2/17/20
to
16 февр. 2020, воскресенье, в 12:57 NOVT, Stas Mishchenkov написал(а):

SM> У меня туннель к ураган электрикам. Соответственно я хожу туда из-за
SM> границы

Ты проверял эту *гипотезу*? Далеко не факт.

SM> Повторюсь. С IPv6 адресом я не могу соединиться только из перла. В баше
SM> все
SM> работает.
SM> URL="https://api.telegram.org/bot$TOKEN/sendMessage"
SM> result=`curl -s -X POST $URL -d chat_id=$CHAT_ID -d
SM> text="$MESSAGE" |
SM> прекрасно отправляет сообщения.

Это не "в баше", это в curl. Откуда следует, что curl идёт по тому же самому
адресу IPv6, что перловский код, ты проверял сниффером?

В такий случях нельзя делать HИКАКИХ предположений, всё надо проверять.

Eugene
--
Однажды, будучи ещё мальчишкой, я был на каникулах и прогуливался вдоль реки.
Я увидел выдру с выводком. Весьма умилительное зрелище, думаю, вы согласитесь
со мной. Выдра нырнула и поймала жирного лосося, которого она с трудом
выволокла на ствол полузатопленного дерева и принялась пожирать, разумеется,
заживо. Из распоротого брюха лосося вывалилась икра, о, я до сих пор помню
чудесный розовый цвет этих икринок, к которым тут же бросились маленькие выдры,
ссорясь между собой за лакомство. Чудо природы: мать и дети, пожирающие
мать и детей. Вот тогда я и познал впервые, что есть зло. Оно встроено в саму
природу вселенной.

Stas Mishchenkov

unread,
Feb 17, 2020, 11:50:01 AM2/17/20
to
Hi, Eugene!

17 фев 20 14:18, Eugene Grosbein -> Stas Mishchenkov:

SM>> У меня туннель к ураган электрикам. Соответственно я хожу туда из-за
SM>> границы

EG> Ты проверял эту *гипотезу*?

Проверял.

EG> Далеко не факт.

=== Import Windows Clipboard Start ===
1. 2001:470:dcd0::10 0.0% 8 0.3 0.3 0.2 0.4 0.0
2. brorabbit-1.tunnel.tserv24.sto1. 0.0% 8 63.3 64.3 62.6 71.6 3.0
3. 10ge3-3.core1.sto1.he.net 0.0% 7 64.8 63.3 59.2 78.6 7.1
4. 2a03:5f80:4::225:141 0.0% 7 83.7 84.5 83.7 86.1 0.8
5. 2001:67c:4e8:9100:1:8100:1:2 0.0% 7 84.1 84.0 83.9 84.1 0.1
6. 2001:67c:4e8:8100:1:800a:1:2 0.0% 7 84.0 84.1 83.9 84.3 0.2
7. 2001:67c:4e8:f004::9 0.0% 7 83.3 83.5 83.2 84.4 0.4

=== Import Windows Clipboard End ===

SM>> Повторюсь. С IPv6 адресом я не могу соединиться только из перла. В
SM>> баше
SM>> все работает. URL="https://api.telegram.org/bot$TOKEN/sendMessage"
SM>> result=`curl -s -X POST $URL -d chat_id=$CHAT_ID -d
SM>> text="$MESSAGE" | прекрасно отправляет сообщения.

EG> Это не "в баше", это в curl. Откуда следует, что curl идёт по тому же
EG> самому адресу IPv6, что перловский код, ты проверял сниффером?

Проверял снифером. IPv4 адрес у меня блокируется РКН и сместо него вываливается
страничка с соответствующим предупреждением.

EG> В такий случях нельзя делать HИКАКИХ предположений, всё надо
EG> проверять.

Сейчас пытаюсь понять, как глубоко в коде зарыта проблема. Пока не слишком
хорошо получается. :(

Eugene Grosbein

unread,
Feb 18, 2020, 4:10:01 AM2/18/20
to
17 февр. 2020, понедельник, в 19:30 NOVT, Stas Mishchenkov написал(а):

SM>>> У меня туннель к ураган электрикам. Соответственно я хожу туда из-за
SM>>> границы
EG>> Ты проверял эту *гипотезу*?
SM> Проверял.
EG>> Далеко не факт.
SM> === Import Windows Clipboard Start ===
SM> 1. 2001:470:dcd0::10 0.0% 8 0.3 0.3 0.2 0.4
SM> 0.0
SM> 2. brorabbit-1.tunnel.tserv24.sto1. 0.0% 8 63.3 64.3 62.6 71.6
SM> 3.0
SM> 3. 10ge3-3.core1.sto1.he.net 0.0% 7 64.8 63.3 59.2 78.6
SM> 7.1
SM> 4. 2a03:5f80:4::225:141 0.0% 7 83.7 84.5 83.7 86.1
SM> 0.8
SM> 5. 2001:67c:4e8:9100:1:8100:1:2 0.0% 7 84.1 84.0 83.9 84.1
SM> 0.1
SM> 6. 2001:67c:4e8:8100:1:800a:1:2 0.0% 7 84.0 84.1 83.9 84.3
SM> 0.2
SM> 7. 2001:67c:4e8:f004::9 0.0% 7 83.3 83.5 83.2 84.4
SM> 0.4
SM> === Import Windows Clipboard End ===

Откуда следует, что эта трасса не идёт физически по каналам
отечественных магистралов после выхода из туннеля?

А кроме того, туннель что - шифрованный?
Для DPI нет никаких проблем резать трафик нешифрованного туннеля
и я точно знаю, что реально используемые DPI этим занимаются.

Eugene

Stas Mishchenkov

unread,
Feb 18, 2020, 9:05:02 AM2/18/20
to
Hi, Eugene!

18 фев 20 16:03, Eugene Grosbein -> Stas Mishchenkov:

EG> Откуда следует, что эта трасса не идёт физически по каналам
EG> отечественных магистралов после выхода из туннеля?

EG> А кроме того, туннель что - шифрованный?
EG> Для DPI нет никаких проблем резать трафик нешифрованного туннеля
EG> и я точно знаю, что реально используемые DPI этим занимаются.

Ну, в любом случае, проблема не в этом, т.к. curl работает нормально. Однако,
заменил LWP::UserAgent на MOJO::UserAgent и получил более внятный ответ. Как я
и подозревал, дело в SSL.

[fido@BroRabbit perl]$ ./tg2fido.pl
ERROR: SSL connect attempt failed error:14077410:SSL
routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Alexey Vissarionov

unread,
Feb 18, 2020, 11:10:01 AM2/18/20
to
Доброго времени суток, Stas!
18 Feb 2020 16:59:18, ты -> Eugene Grosbein:

SM> Ну, в любом случае, проблема не в этом, т.к. curl работает нормально.
SM> Однако, заменил LWP::UserAgent на MOJO::UserAgent и получил более
SM> внятный ответ. Как я и подозревал, дело в SSL.
SM> [fido@BroRabbit perl]$ ./tg2fido.pl
SM> ERROR: SSL connect attempt failed error:14077410:SSL
SM> routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Ну наконец-то... я уж думал, уложишься ты в две недели или нет.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Eugene Grosbein

unread,
Feb 18, 2020, 1:15:01 PM2/18/20
to
18 февр. 2020, вторник, в 16:59 NOVT, Stas Mishchenkov написал(а):

SM> Hу, в любом случае, проблема не в этом, т.к. curl работает нормально.
SM> Однако,
SM> заменил LWP::UserAgent на MOJO::UserAgent и получил более внятный ответ.
SM> Как я и
SM> подозревал, дело в SSL.
SM> [fido@BroRabbit perl]$ ./tg2fido.pl
SM> ERROR: SSL connect attempt failed error:14077410:SSL
SM> routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Гм, а почитать perldoc LWP::UserAgent не судьба?

> The libwww-perl core no longer bundles protocol plugins for SSL. You
> will need to install LWP::Protocol::https separately to enable support
> for processing https-URLs.

У тебя LWP::Protocol::https вообще установлен?

Если нет, надо поставить. Если стоит, надо опять-таки почитать
документацию на опции ssl и попробовать с отключенным verify_hostname и
если это поможет, значит у тебя тупо устаревший набор корневых CA
или нет никакого.

Обычно файл ca-root-nss.crt идёт с пакетом ca_root_nss
и пакет этот надо периодически обновлять, хотя бы раз в квартал.

Eugene

Eugene Grosbein

unread,
Feb 18, 2020, 1:25:01 PM2/18/20
to
19 февр. 2020, среда, в 00:56 NOVT, Eugene Grosbein написал(а):

SM>> Hу, в любом случае, проблема не в этом, т.к. curl работает нормально.
SM>> Однако,
SM>> заменил LWP::UserAgent на MOJO::UserAgent и получил более внятный ответ.
SM>> Как я и
SM>> подозревал, дело в SSL.
SM>> [fido@BroRabbit perl]$ ./tg2fido.pl
SM>> ERROR: SSL connect attempt failed error:14077410:SSL
SM>> routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
EG> Гм, а почитать perldoc LWP::UserAgent не судьба?

[skip]

Хотя, если дело действительно в handshake, то скорее всего
проблема в ciphers / версии TLS. Попробуй для начала
разрешить LWP::UserAgent использовать все ciphers,
потому что по дефолту он пробует урезанный набор.

new LWP::UserAgent->new(ssl_opts => {
verify_hostname => 0,
SSL_cipher_list => '',
})

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

Stas Mishchenkov

unread,
Feb 18, 2020, 3:05:01 PM2/18/20
to
Hi, Eugene!

19 фев 20 00:56, Eugene Grosbein -> Stas Mishchenkov:

SM>> Hу, в любом случае, проблема не в этом, т.к. curl работает нормально.
SM>> Однако, заменил LWP::UserAgent на MOJO::UserAgent и получил более
SM>> внятный
SM>> ответ. Как я и подозревал, дело в SSL. [fido@BroRabbit perl]$
SM>> ./tg2fido.pl
SM>> ERROR: SSL connect attempt failed error:14077410:SSL
SM>> routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

EG> Гм, а почитать perldoc LWP::UserAgent не судьба?

Ну, падьчем покажи уже?

>> The libwww-perl core no longer bundles protocol plugins for SSL. You
>> will need to install LWP::Protocol::https separately to enable support
>> for processing https-URLs.

EG> У тебя LWP::Protocol::https вообще установлен?

Прикинь?

EG> Если нет, надо поставить. Если стоит, надо опять-таки почитать
EG> документацию на опции ssl и попробовать с отключенным verify_hostname и
EG> если это поможет, значит у тебя тупо устаревший набор корневых CA
EG> или нет никакого.

Пошел курить, но что-то мне подсказывает...

EG> Обычно файл ca-root-nss.crt идёт с пакетом ca_root_nss
EG> и пакет этот надо периодически обновлять, хотя бы раз в квартал.

О! завтра проверю. Вполне возможно, что дело имменл в нем.

Stas Mishchenkov

unread,
Feb 18, 2020, 3:05:01 PM2/18/20
to
Hi, Alexey!

18 фев 20 19:00, Alexey Vissarionov -> Stas Mishchenkov:

SM>> Ну, в любом случае, проблема не в этом, т.к. curl работает нормально.
SM>> Однако, заменил LWP::UserAgent на MOJO::UserAgent и получил более
SM>> внятный ответ. Как я и подозревал, дело в SSL.
SM>> [fido@BroRabbit perl]$ ./tg2fido.pl
SM>> ERROR: SSL connect attempt failed error:14077410:SSL
SM>> routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

AV> Ну наконец-то... я уж думал, уложишься ты в две недели или нет.

Не ёрничай, а подскажи. Я сразу ssl заподозрил. Вопрос, - где править?

Eugene Grosbein

unread,
Feb 19, 2020, 12:25:02 AM2/19/20
to
18 февр. 2020, вторник, в 22:59 NOVT, Stas Mishchenkov написал(а):

SM> Hе ёрничай, а подскажи. Я сразу ssl заподозрил. Вопрос, - где править?

Ты ж так и не сподобился показать свой код,
кто ж тебе скажет, как его править. Типа намёк.

Eugene
--
Комбинация заискивания, подкупа и устрашения заставит молодого ученого
работать над управляемыми снарядами или атомной бомбой. (Hорберт Винер)

Stas Mishchenkov

unread,
Feb 19, 2020, 2:10:01 AM2/19/20
to
*** Ответ на сообщение из _Carbon.Mail (Carbon.Mail).

Hi, Eugene!

19 фев 20 12:13, Eugene Grosbein -> Stas Mishchenkov:

SM>> Hе ёрничай, а подскажи. Я сразу ssl заподозрил. Вопрос, - где
SM>> править?

EG> Ты ж так и не сподобился показать свой код,
EG> кто ж тебе скажет, как его править. Типа намёк.

#!/usr/bin/perl
use Net::INET6Glue::INET_is_INET6;
use WWW::Telegram::BotAPI;


my $api = WWW::Telegram::BotAPI->new(
# указываем токен вашего бота
token => '*********************************************'
);

# получаем очередь сообщений. По умолчанию, отдается массив не более 100
$api->getUpdates();
#Вот здесь и опадает.

$updcount = @{( $api->getUpdates->{result} )};
print("updcount: $updcount\n");

Eugene Grosbein

unread,
Feb 19, 2020, 6:05:01 AM2/19/20
to
19 февр. 2020, среда, в 09:59 NOVT, Stas Mishchenkov написал(а):

SM>>> Hе ёрничай, а подскажи. Я сразу ssl заподозрил. Вопрос, - где
SM>>> править?
EG>> Ты ж так и не сподобился показать свой код,
EG>> кто ж тебе скажет, как его править. Типа намёк.
SM> #!/usr/bin/perl
SM> use Net::INET6Glue::INET_is_INET6;
SM> use WWW::Telegram::BotAPI;
SM> my $api = WWW::Telegram::BotAPI->new(
SM> # указываем токен вашего бота
SM> token => '*********************************************'
SM> );
SM> # получаем очередь сообщений. По умолчанию, отдается массив не более 100
SM> $api-> getUpdates();
SM> #Вот здесь и опадает.

А ты вообще пробовал читать документацию на модуль?
Про обработку ошибок через eval там написано, про метод parse_error,
про выставление env TELEGRAM_BOTAPI_DEBUG=1 перед запуском скрипта...

Eugene
--
И у священных источников живут алчные монахи. (Дхарма)

Stas Mishchenkov

unread,
Feb 21, 2020, 5:50:02 AM2/21/20
to
Hi, Eugene!

19 фев 20 17:58, Eugene Grosbein -> Stas Mishchenkov:

EG> Про обработку ошибок через eval там написано, про метод parse_error,
EG> про выставление env TELEGRAM_BOTAPI_DEBUG=1 перед запуском скрипта...

Вобщем-то, проблему я обошел через локальный прокси, но не решил.

my $api = WWW::Telegram::BotAPI->new(
# указываем токен вашего бота
token => 'ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ',
api_url => 'http://127.0.0.1/bot%s/%s'
);


Вопрос с SSL в перле остался открытым.

Stas Mishchenkov

unread,
Feb 21, 2020, 5:50:02 AM2/21/20
to
Hi, Eugene!

19 фев 20 01:06, Eugene Grosbein -> Eugene Grosbein:

SM>>> Hу, в любом случае, проблема не в этом, т.к. curl работает
SM>>> нормально.
SM>>> Однако, заменил LWP::UserAgent на MOJO::UserAgent и получил более
SM>>> внятный ответ. Как я и подозревал, дело в SSL. [fido@BroRabbit perl]$
SM>>> ./tg2fido.pl
SM>>> ERROR: SSL connect attempt failed error:14077410:SSL
SM>>> routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
EG>> Гм, а почитать perldoc LWP::UserAgent не судьба?

EG> [skip]

EG> Хотя, если дело действительно в handshake, то скорее всего
EG> проблема в ciphers / версии TLS. Попробуй для начала
EG> разрешить LWP::UserAgent использовать все ciphers,
EG> потому что по дефолту он пробует урезанный набор.

EG> new LWP::UserAgent->new(ssl_opts => {
EG> verify_hostname => 0,
EG> SSL_cipher_list => '',
EG> })

Для того, что бы это заработало, нужно править модуль телеграм бот апи?

Stas Mishchenkov

unread,
Feb 21, 2020, 5:50:02 AM2/21/20
to
Hi, Eugene!

19 фев 20 17:58, Eugene Grosbein -> Stas Mishchenkov:

SM>>>> Hе ёрничай, а подскажи. Я сразу ssl заподозрил. Вопрос, - где
SM>>>> править?
EG>>> Ты ж так и не сподобился показать свой код,
EG>>> кто ж тебе скажет, как его править. Типа намёк.
SM>> #!/usr/bin/perl
SM>> use Net::INET6Glue::INET_is_INET6;
SM>> use WWW::Telegram::BotAPI;
SM>> my $api = WWW::Telegram::BotAPI->new(
SM>> # указываем токен вашего бота
SM>> token => '*********************************************'
SM>> );
SM>> # получаем очередь сообщений. По умолчанию, отдается массив не более 100
SM>> $api-> getUpdates();
SM>> #Вот здесь и опадает.

EG> А ты вообще пробовал читать документацию на модуль?

С этого начал.

EG> Про обработку ошибок через eval там написано, про метод parse_error,
EG> про выставление env TELEGRAM_BOTAPI_DEBUG=1 перед запуском скрипта...

Получается менее информативно, но да, - выдает ту же ошибку.

Eugene Grosbein

unread,
Feb 21, 2020, 8:05:01 AM2/21/20
to
21 февр. 2020, пятница, в 13:43 NOVT, Stas Mishchenkov написал(а):

SM> Вопрос с SSL в перле остался открытым.

Hет такого понятия как "SSL в перле".
Есть реализации SSL/TLS в разных C-библиотечках типа BoringSSL,
OpenSSL, всякие GNU* и ещё есть разные перловые модули,
которые могут использовать библиотечки C или (чем черт не шутит)
даже реализовывать алгоритмы самостоятельно.

И надо читать доку на используемые модули о том,
как именно они работают с SSL/TLS.

Eugene

Eugene Grosbein

unread,
Feb 21, 2020, 8:20:01 AM2/21/20
to
21 февр. 2020, пятница, в 13:42 NOVT, Stas Mishchenkov написал(а):

SM>>> use Net::INET6Glue::INET_is_INET6;
SM>>> use WWW::Telegram::BotAPI;
SM>>> my $api = WWW::Telegram::BotAPI->new(
SM>>> # указываем токен вашего бота
SM>>> token => '*********************************************'
SM>>> );
SM>>> # получаем очередь сообщений. По умолчанию, отдается массив не более 100
SM>>> $api->> getUpdates();
SM>>> #Вот здесь и опадает.
EG>> А ты вообще пробовал читать документацию на модуль?
SM> С этого начал.

Плохо читал, там есть метод agent, который возвращает экземпляр
класса, используемого в качестве транспорта: LWP::UserAgent
(по умолчанию) или Mojo::UserAgent.

А в документации на LWP::UserAgent описан метод ssl_opts,
который позволяет задавать опции SSL, которые экземпляр будет
использовать. И ещё есть ссылка на IO::Socket::SSL,
который делает реальную работу по обёртыванию сокетов в SSL.

В документации на IO::Socket::SSL описана глобальная переменная,
которая описывает последнюю ошибку SSL. Для кода типа твоего
проверять её вполне достаточно. Опять намёк.

EG>> Про обработку ошибок через eval там написано, про метод parse_error,
EG>> про выставление env TELEGRAM_BOTAPI_DEBUG=1 перед запуском скрипта...
SM> Получается менее информативно, но да, - выдает ту же ошибку.

Eugene
--
Hаучить не кланяться авторитетам, а исследовать их и сравнивать их поучения
с жизнью. Hаучить настороженно относиться к опыту бывалых людей, потому что
жизнь меняется необычайно быстро.

Eugene Grosbein

unread,
Feb 21, 2020, 8:20:01 AM2/21/20
to
21 февр. 2020, пятница, в 13:40 NOVT, Stas Mishchenkov написал(а):

EG>> new LWP::UserAgent->new(ssl_opts => {
EG>> verify_hostname => 0,
EG>> SSL_cipher_list => '',
EG>> })
SM> Для того, что бы это заработало, нужно править модуль телеграм бот апи?

Hет, подробнее ответил в другом письме.

Eugene

Stas Mishchenkov

unread,
Feb 21, 2020, 9:20:01 AM2/21/20
to
Hi, Eugene!

21 фев 20 19:46, Eugene Grosbein -> Stas Mishchenkov:

SM>> Вопрос с SSL в перле остался открытым.

EG> Hет такого понятия как "SSL в перле".
EG> Есть реализации SSL/TLS в разных C-библиотечках типа BoringSSL,
EG> OpenSSL, всякие GNU* и ещё есть разные перловые модули,
EG> которые могут использовать библиотечки C или (чем черт не шутит)
EG> даже реализовывать алгоритмы самостоятельно.

EG> И надо читать доку на используемые модули о том,
EG> как именно они работают с SSL/TLS.

Извини. Неверно выразился. Не удается установить SSL соединение с сервером
телеграма.

Kirill Breus

unread,
Feb 25, 2020, 12:45:01 AM2/25/20
to
Здpавствуй, Eugene!

Пятница 21 Февраля 2020 19:46, ты писал(а) Stas Mishchenkov, в сообщении по
ссылке area://ru.perl?msgid=grosbein.net+a17e3e1f:

EG> 21 февр. 2020, пятница, в 13:43 NOVT, Stas Mishchenkov написал(а):

SM>> Вопрос с SSL в перле остался открытым.

EG> Hет такого понятия как "SSL в перле".
EG> Есть реализации SSL/TLS в разных C-библиотечках типа BoringSSL,
EG> OpenSSL, всякие GNU* и ещё есть разные перловые модули,
EG> которые могут использовать библиотечки C или
EG> даже реализовывать алгоритмы самостоятельно.

EG> И надо читать доку на используемые модули о том,
EG> как именно они работают с SSL/TLS.

EG> Eugene
EG> --- slrn/1.0.3 (FreeBSD)
EG> * Origin: RDTC JSC (2:5006/1@fidonet)

С уважением - Kirill

Kirill Breus

unread,
Feb 25, 2020, 12:45:01 AM2/25/20
to
Здpавствуй, Eugene!

Пятница 21 Февраля 2020 19:46, ты писал(а) Stas Mishchenkov, в сообщении по
ссылке area://ru.perl?msgid=grosbein.net+a17e3e1f:

EG> 21 февр. 2020, пятница, в 13:43 NOVT, Stas Mishchenkov написал(а):

SM>> Вопрос с SSL в перле остался открытым.

0 new messages