Aktywne Wpisy
Tumurochir +327
Jestem po seansie Zielonej Granicy. Przyznam, że trailery tego filmu mnie zniechęciły, a wręcz odniosłem wrażenie że będzie to propagandowe gówno pokroju Smoleńska, tylko w drugą stronę. Jednak po sraczce PiSu w związku z tym filmem postanowiłem się na niego wybrać i bardzo dziękuję PiSowcom za promocję, bo pozytywnie się zaskoczyłem.
Najpierw zacznijmy od strony technicznej. Film jest w stylistyce czarno-białej i prawdopodobnie reżyserka uznała, że dzięki temu będzie on odbierany jako
Najpierw zacznijmy od strony technicznej. Film jest w stylistyce czarno-białej i prawdopodobnie reżyserka uznała, że dzięki temu będzie on odbierany jako
BrianEno +114
#!/usb/bin/python3
import requests
payload = {
'funfunction': 'HTTPAuthenticatefn',
'NextPage': '/protocols/ip/dns.php?from=wiredConfig',
'webUsername': 'adminsample',
'webPassword': 'passwordsample',
'frmaltDomain': 'default'
}
with requests.Session() as s:
p = s.post('http://192.168.1.2/userpost/xerox.set', data=payload)
print(p.text)
r = s.get('http://192.168.1.2/protocols/ip/dns.php?from=wiredConfig')
print(r.text)
I w requests.session() o ile POST przechodzi tak GET już nie. W payloadzie do postu jest linijka "nextpage" na którą mnie przekierowywuje po zalogowaniu i to działa. Natomiast GET trzy linijki niżej już nie - wywala mnie z powrotem do ekranu logowania. Czytałem, że requests.Session() trzyma ciacha póki trwa sesja więc dlaczego powyższy skrypt nie działa? Spotkał się ktoś już z czymś takim?
#python #programowanie #skryptowanie #it #informatyka
Dodaj sobie print(r.request.headers) i zobacz czy w środku masz 'Cookie' i czy zgadza się z tym co jest w p.headers w 'Set-Cookie' (jeśli post zwraca status 30x to dodaj parametr allow_redirects=False żeby zobaczyć headery z odpowiedzi pierwszego żądania).
#!/usb/bin/python3
import requests
with requests.Session() as s:
test1 = s.get('http://192.168.1.2/protocols/ip/dns.php?from=wiredConfig')
print(test1.cookies)
test2 = s.get('http://192.168.1.2/protocols/ip/dns.php?from=wiredConfig')
print(test2.cookies)
Ciacho PHPSESSID mam wyświetlone dwa razy z dwoma różnymi wartościami. Tak chyba nie powinno być, prawda?
Pod test1 dodaj print(test1.headers), a potem zobacz czy w print(test2.request.headers) jest wysyłane to PHPSESSID, które zostało ustawione przez Set-Cookie w test1.
Dodatkowo otwórz sobie ten url normalnie w chrome i w inspectorze zobacz czy odświeżając stronę też serwer ustawia nowe PHPSESSID - może po prostu tak ma być?
To mi wypluło po dodaniu twoich linijek:
TEST 1 -----
{'Cache-Control': 'max-age=0, no-store', 'Keep-Alive': 'timeout=10, max=99', 'X-Frame-Options': 'SAMEORIGIN', 'Content-Type': 'text/html; charset=UTF-8', 'Date': 'Thu, 05 Oct 2017 14:13:08 GMT', 'Content-Length': '3518', 'Connection': 'Keep-Alive', 'Set-Cookie': 'PHPSESSID=fd9fa5f27638d99e937661551b09adf3; path=/; secure, PHPSESSID=0ab20dc269e3c405382721e70f34891d; path=/; secure', 'Pragma': 'no-cache', 'Server': 'Apache', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT'}
]>
TEST 1 -----
TEST 2 -----
{'User-Agent': 'python-requests/2.10.0', 'Connection':
Po wywołaniu wyświetla takie cuś:
{'Content-Length': '223', 'X-Processed-Time': '0.000696897506714', 'X-Powered-By': 'Flask', **'Set-Cookie': 'sessioncookie=123456789; Path=/'**, 'Server': 'meinheld/0.6.1', 'Connection': 'keep-alive', 'Via': '1.1 vegur', 'Location': '/cookies', 'Access-Control-Allow-Credentials': 'true', 'Date': 'Thu, 05 Oct 2017 17:50:55 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'text/html; charset=utf-8'}
{'Connection': 'keep-alive', **'Cookie': 'sessioncookie=123456789'**, 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent':
Wzorując się na SO odczytaj sobie najpierw PHPSESSID z cookie, usuń ciasteczko i ustaw nowe już bez secure.