Форум сайта python.su
Всем привет. Кто делал запросы API ver 10.1 in Qradar к reference map of set . Не могу разобраться. Прошу помощи. Я так понял что с помощью библиотеки request это не возможно сделать, может ошибаюсь.
Отредактировано usmesn (Сен. 1, 2020 19:33:11)
Офлайн
usmesnЕсли это возможно сделать по HTTP, то с помощью requests это возможно сделать.
Я так понял что с помощью библиотеки request это не возможно сделать
Офлайн
система даже сама генирит этот curl
curl -s -X GET -u username:password -H ‘Range: items=0-49’ -H ‘Version: 10.1’ -H ‘Accept: application/json’ 'https://xxxxxxxxxxxxx.ru/api/reference_data/map_of_sets/ESET_hostname'
но он не работает из командной строки.
Действия происходят в домене, в котором есть прокси, указывал параметры авторизации все равно не работает. Я так полагаю что я должен сначала авторизоваться на прокси с помощью доменной учетной записи, потом также указать авторизационные данные необходимые для API данного сервера, чтобы обратиться к конечной точке ESET_hostname.
или может этот curl конвертировать в requests запрос, но пока не получается
Отредактировано usmesn (Сен. 3, 2020 07:48:20)
Офлайн
usmesnТак вот надо выяснить, что ты пишешь неправильно.
но он не работает из командной строки
usmesnТебе это не поможет, потому что ты даже не понимаешь, что ты делаешь. Одного curl достаточно, чтобы получить данные. Когда получишь данные, тогда и requests можешь применять. Что curl, что requests посылают одно и то же, только это записывается для них по-разному. И вот это одно и то же ты и не можешь сформулировать.
или может этот curl конвертировать в requests запрос
Офлайн
при получении данных curl возвращает
curl: (56) Received HTTP code 502 from proxy after CONNECT, что можно посмореть
Офлайн
502 Bad Gateway — сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера. Появился в HTTP/1.0.
usmesnНайди систему рабочую, на ней всё отладь, можешь даже скрипт на Python написать. Когда ты убедишься, что ты всё правильно делаешь с рабочим сервером, тогда ты придёшь в этот банк и будешь выяснять, как к нему подключиться (может быть, письмо им напишешь туда). Я полазил у них до докам, они не пишут ничего практически. Это может свидетельствовать о том, что у них там не очень грамотные ребята сидят, которые могли допустить ошибку в настройках, из-за которой ты сейчас думаешь, что ты что-то сделать не можешь. Так что не зацикливайся на них, найди дублирующую систему, где точно всё работает, и проверяй всё на них обеих.
что можно посмореть
Офлайн
я работаю в этом банке, есть необходимость забрать инфу в формате json средствами api на питоне, изучаю данную тему, параметры прокси в браузере посмотрел.
Начал с самого простого:
вот такой скрипт например работает исправно(lданные прокси замаскированны)
import requests
url = 'https://yandex.ru'
proxies= {'https':'https://user:pass@xxxxx:xxxx'}
response = requests.get(url=url, proxies=proxies)
print(response.status_code)
response.close()
А такой нет
import requests
url = 'https://xxxxxxxx.ru/console/logon.jsp'
proxies= {'https':'https://user:pass@xxxxx:xxxx'}
response = requests.get(url=url, proxies=proxies)
print(response.status_code)
вот такая ошибка
Traceback (most recent call last):
File “C:\p\google.py”, line 4, in <module>
response = requests.get(url=url, proxies=proxies)
File “C:\Program Files\Python37\lib\site-packages\requests\api.py”, line 76, in get
return request('get', url, params=params, **kwargs)
File “C:\Program Files\Python37\lib\site-packages\requests\api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “C:\Program Files\Python37\lib\site-packages\requests\sessions.py”, line 530, in request
resp = self.send(prep, **send_kwargs)
File “C:\Program Files\Python37\lib\site-packages\requests\sessions.py”, line 643, in send
r = adapter.send(request, **kwargs)
File “C:\Program Files\Python37\lib\site-packages\requests\adapters.py”, line 510, in send
raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='consiem.is01.zenit.ru', port=443): Max retries exceeded with url: /console/logon.jsp (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 502 cannotconnect')))
Отредактировано usmesn (Сен. 3, 2020 07:49:30)
Офлайн
usmesnНа заморачивайся на этой фигне пока что. У тебя вопрос “API ver 10.1 Siem Qradar”. Ты хочешь узнать, как правильно получать данные. Найди такую систему на стороне, в которой стопроцентно всё работает и получи от неё данные. Когда ты с этим справишься и узнаешь точно, как их получать, тогда ты и будешь выяснять, что там происходит в этом твоём банке и почему соединение не строится. Потому что к API построение соединения никакого отношения не имеет.
вот такой скрипт например работает исправно
[guest@localhost ~]$ .ping consiem.is01.zenit.ru
ping: consiem.is01.zenit.ru: Name or service not known
[guest@localhost ~]$
Отредактировано py.user.next (Сен. 3, 2020 01:13:13)
Офлайн
Удалось обойти прокси
import requests
один из вариантов
import os
os.environ = ‘*’
url = 'https://consiem.is01.zenit.ru/console/logon.jsp'
user_agent = {'User-Agent': ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36’}
response = requests.get(url=url, headers=user_agent, verify=False)
print(response.text)
получил 200 статус, пока нет времени получить то что нужно а также обработать результат с помощью API, а также не получилось curl забрать данные, хотя есть ключ –noproxy
Отредактировано usmesn (Сен. 3, 2020 18:25:50)
Офлайн
usmesnА это здесь при чём? Ты точно уверен, что это хотя бы какую-то роль играет в соединении?
import os
os.environ = ‘*’
Офлайн