Отправка уведомления в Telegram через прокси

Страницы: 1
RSS
Отправка уведомления в Telegram через прокси
 
Рабочий компьютер стоит в сети за корпоративной прокси по https.
При попытке работы с luasocket и luasec столкнулся с ограничения библиотек по части работы с прокси. (опыт работы непосредственно с lua 1 неделя, так что могу чего то не понимать/не знать)

Телеграмм работает через связку Telegram -> Tor Expert Bungle -> CNtlm -> интернет

127.0.0.1:9050 - это прокси TOR.

Запускаю программу из командной строки lua test_curl.lua
Код
local cURL = require("luacurl")

auth = "..."
chat = "..."
msg = "Hello"

login_url = "https://api.telegram.org/bot"..auth.."/sendMessage"


c = cURL.new()

c:setopt(curl.OPT_URL, login_url)
c:setopt(curl.OPT_PROXYTYPE, curl.PROXY_SOCKS5)
c:setopt(curl.OPT_PROXY, "127.0.0.1")
c:setopt(curl.OPT_PROXYPORT, "9050")
c:setopt(curl.OPT_POST, true)
c:setopt(curl.OPT_POSTFIELDS, "chat_id="..chat.."&text="..msg)
c:setopt(curl.OPT_TRANSFERTEXT, true)
c:setopt(curl.OPT_VERBOSE, true)
c:setopt(curl.OPT_NOBODY, false)

c:setopt(curl.OPT_SSL_VERIFYPEER, false)

c:perform()

c:close() 

Все OK. Получаю нотификацию.

Запускаю из Quik 7.27.2.1 скрипт.

Код
cURL = require("luacurl")

function main()
    c = cURL.new() 
    auth = "..."
    chat = "..."
    msg = "Hello"

    login_url = "https://api.telegram.org/bot"..auth.."/sendMessage"
        
    c:setopt(curl.OPT_URL, login_url)
    c:setopt(curl.OPT_PROXYTYPE, curl.PROXY_SOCKS5)
    c:setopt(curl.OPT_PROXY, "127.0.0.1")
    c:setopt(curl.OPT_PROXYPORT, "9050")
    c:setopt(curl.OPT_POST, true)
    c:setopt(curl.OPT_POSTFIELDS, "chat_id="..chat.."&text="..msg)
    c:setopt(curl.OPT_TRANSFERTEXT, true)
    c:setopt(curl.OPT_VERBOSE, true)
    c:setopt(curl.OPT_NOBODY, false)

    c:setopt(curl.OPT_SSL_VERIFYPEER, false)

    c:perform()

    c:close()

end

Quik виснет намертво. Путем эксперимента выяснил, что это происходит на первой же строке:
cURL = require("luacurl")

Бросил в папку терминала и в папку, где лежит скрипт, все dll, которые могут быть использованы в скрипте. Не помогает.

Добавление в скрипт путей package.cpath и package.path не помогает.

В чем может быть проблема?  
 
Добрый день.
Я бился с подключением SSL библиотеки. Не подключалась никак из готовых библиотек. На стороне тоже все работало.
В конечном итоге пришлось просто пересобрать конкретную версию библиотеки, которая в итоге заработала.
Так что советую собрать luacurl через luarocks именно под lua 5.1.

Еще один момент важный, такого рода библиотеки в Квике работают, если они лежат в папке с библиотекой lua5.1, т.е. в папке установки Квика.
В чем здесь особенность Квика не знаю, но пришлось так сделать, иначе никак не запускалось.
 
пересобрал все под Visual Studio 2015. теперь он виснет не на первой строчке, а доходит до perform. потом судя по всему отваливается по таймоуту. к сожалению, как получить код ошибки я так и не понял.

на какой версии компилятора вы собирали?
       
 
Я собирал на vs17

Вот я дополнительно собрал lcurl https://github.com/Lua-cURL/Lua-cURLv3 с последним cURL

Проверил, работает. Вот сборка и примеры
https://github.com/nick-nh/qlua/tree/master/lua_socket_ssl
 
С вашей сборкой заработало. Спасибо. Попозже попробую разобраться, что я делал не так.
Страницы: 1
Читают тему
Наверх