Управление файлами cookie, которые используются для рекламы, таких как персонализация рекламы, ремаркетинг и анализ эффективности рекламы.
|
caezaris
08.03.2021 19:02
0
|
По какой причине может приходить ответ 405 Not Allowed? Вайтлистинг IP выключен. Ниже лог запроса и ответа:
2021-03-08 17:23:46,154:DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): adm.tools:443 2021-03-08 17:23:46,188:DEBUG:urllib3.connectionpool:Вход "POST /action/dns/list/ HTTP/1.1" 405 150 send: b'POST /action/dns/list/ HTTP/1.1\r\nHost: adm.tools\r\nUser-Agent: python-requests/2.25.1\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\nAuthorization: Bearer <token removed>\r\nContent-Length: 0 ' reply: 'HTTP/1.1 405 Not Allowed\r\n' header: Server: nginx header: Date: Mon, 08 Mar 2021 15:23:46 GMT header: Content-Type: text/html header: Content-Length: 150 header: Connection: keep-alive header: x-ray: wn2147:0.000/ |
|
LitvinenkoAndrey
09.03.2021 18:27
0
|
Попробуйте поменять useragent на другой.
|
|
caezaris
09.03.2021 18:32
0
|
Спасибо за ответ. Это помогло, правда через несколько тестов снова вернулась 405 - пришлось снова менять агента. Ложное срабатывание какой-то защиты?
Но я продвинулся не слишком далеко, теперь я получаю 429 Too Many Requests на один из следующих запросов: send: b'POST /action/dns/records_add HTTP/1.1\r\nHost: adm.tools\r\nUser-Agent: certbot2\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\nAuthorization: Bearer <token removed>\r\nContent-Length: 97\r\nContent-Type: application/x-www-form-urlencoded ' send: b'domain_id=960238&type=TXT&record=_acme-challenge&data=ZaLKRQvD61KAFF-mX8tunwEZ4jHurWm_NOIXfk_UEDs' reply: 'HTTP/1.1 429 Too Many Requests\r\n' header: Server: nginx header: Date: Tue, 09 Mar 2021 16:26:54 GMT header: Content-Type: application/json; charset=utf-8 header: Transfer-Encoding: chunked header: Connection: keep-alive header: Strict-Transport-Security: max-age=15552000 header: Access-Control-Allow-Methods: POST header: Expires: Thu, 19 Nov 1981 08:52:00 GMT header: Cache-Control: no-store, no-cache, must-revalidate header: Pragma: no-cache header: Set-Cookie: PHPSESSID=78390513f4c1b79380cd3c3758af46e2; path=/; secure; HttpOnly; SameSite=1 header: x-ray: wn2147:0.040/wa2147:D=44458 header: X-Frame-Options: SAMEORIGIN Cleaning up challenges Это третий запрос в цепочке. В целом мне нужно реализовать такую логику: 1. получить domain_id по его названию (dns/list) 2. получить список записей домена, чтоб проверить нет ли там уже нужной записи (dns/records_list) 3. если нет - добавить запись (dns/records_add) 4. подождать 5. удалить запись (dns/records_delete) |
|
LitvinenkoAndrey
09.03.2021 18:41
0
|
429 Too Many Requests — слишком много запросов (более 2 в секунду). Как вариант просто поставьте sleep на одну секунду между каждым запросом.
По поводу ошибки 403(405 в случае, если это POST запрос), то попробуйте использовать "обычный" useragent(не пробуйте представляться поисковым ботом или еще кем-то) |
|
rudenko
10.03.2021 03:00
0
|
На github обновлено API, в нем реализованы методы, которые вам нужны:
github.com/ukraine-com-ua/API/blob/Initial/HostingAPI.class.php так же добавлены примеры обращений к API: github.com/ukraine-com-ua/API/blob/Initial/example.php так как вы пишите на python, то вряд ли он вам сильно поможет. :( |
|
caezaris
10.03.2021 22:25
0
|
Через несколько тестовых прогонов скрипта я получаю 405 Not Allowed даже с обычным юзер агентом скопированным их хрома. Кажется ваша система защиты работает чрезмерно.
|
|
caezaris
10.03.2021 22:28
0
|
Отмена, в этот раз это была ошибка в URL
|
|
caezaris
10.03.2021 23:51
0
|
Благодарю за помощь, получилось завершить скрипт. Возможно будет полезен:
github.com/alex-shevchenko/certbot-dns-ukrainecomua |
Тема закрыта.