>>> from redireccions import codi_3xx >>> linies_s = '''10.0.171.19 srv09.example.edu [12/Mar/2023:00:01:05 +0100] "GET /fi/examens/curs2019-2020/2/L2/G10/reescalat.html HTTP/1.1" 301 "Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)" ... 10.0.115.33 srv03.example.edu [12/Mar/2023:00:01:30 +0100] "GET /inf/examens/curs2022-2023/1/L1-G40/solucio.html HTTP/1.1" 304 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" ... 10.0.207.108 srv08.example.edu [12/Mar/2023:00:00:30 +0100] "GET /inf/_sources/examens/curs2018-2019/1/parcial-torn1/index.rst.txt HTTP/1.1" 200 "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" ... 10.0.253.145 srv05.example.edu [12/Mar/2023:00:07:09 +0100] "GET /fi/examens/curs2021-2022/1/L1/G60/rebut.html HTTP/1.1" 301 "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" ... 10.0.81.148 srv08.example.edu [12/Mar/2023:01:35:41 +0100] "GET /inf/_static/underscore.js HTTP/1.1" 304 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" ... 10.0.171.23 srv03.example.edu [12/Mar/2023:00:13:58 +0100] "GET /inf/temes/pandas/Despeses_farmac%C3%A8utiques/index.html HTTP/1.1" 200 "Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)" ... 10.0.70.206 srv06.example.edu [12/Mar/2023:00:04:39 +0100] "GET /fi/examens/curs2020-2021/2/L2/G20/p4.html HTTP/1.1" 301 "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" ... 10.0.85.180 srv10.example.edu [12/Mar/2023:02:09:53 +0100] "GET /inf/_static/graphviz.css HTTP/1.1" 304 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Safari/605.1.15" ... 10.0.188.253 srv03.example.edu [12/Mar/2023:00:16:19 +0100] "GET /inf/examens/curs2020-2021/1/E3-E4-G40/dates.html HTTP/1.1" 200 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" ... 10.0.167.242 srv02.example.edu [12/Mar/2023:01:13:24 +0100] "GET /fi/temes/diccionaris/Hotel/index.html HTTP/1.1" 301 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/103.0.5060.134 Safari/537.36" ... 10.0.144.43 srv03.example.edu [12/Mar/2023:03:30:54 +0100] "GET /programming/examens/2020/E2/statement/store.html HTTP/1.1" 304 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/103.0.5060.134 Safari/537.36" ... 10.0.211.108 srv08.example.edu [12/Mar/2023:00:21:19 +0100] "GET /inf/temes/grafs/Arbre_geneal%C3%B2gic/index.html HTTP/1.1" 200 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.63"''' >>> linies_l = linies_s.split('\n') ---- inici >>> from pprint import pprint >>> pprint(linies_l[:3]) ['10.0.171.19 srv09.example.edu [12/Mar/2023:00:01:05 +0100] "GET ' '/fi/examens/curs2019-2020/2/L2/G10/reescalat.html HTTP/1.1" 301 "Mozilla/5.0 ' '(compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)"', '10.0.115.33 srv03.example.edu [12/Mar/2023:00:01:30 +0100] "GET ' '/inf/examens/curs2022-2023/1/L1-G40/solucio.html HTTP/1.1" 304 "Mozilla/5.0 ' '(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/110.0.0.0 Safari/537.36"', '10.0.207.108 srv08.example.edu [12/Mar/2023:00:00:30 +0100] "GET ' '/inf/_sources/examens/curs2018-2019/1/parcial-torn1/index.rst.txt HTTP/1.1" ' '200 "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"'] >>> c3xx = codi_3xx(linies_l[:3]) >>> pprint(c3xx) [('srv09.example.edu', '/fi/examens/curs2019-2020/2/L2/G10/reescalat.html', '10.0.171.19')] ---- fi >>> pprint(linies_l[3:6]) ['10.0.253.145 srv05.example.edu [12/Mar/2023:00:07:09 +0100] "GET ' '/fi/examens/curs2021-2022/1/L1/G60/rebut.html HTTP/1.1" 301 "Mozilla/5.0 ' '(compatible; YandexBot/3.0; +http://yandex.com/bots)"', '10.0.81.148 srv08.example.edu [12/Mar/2023:01:35:41 +0100] "GET ' '/inf/_static/underscore.js HTTP/1.1" 304 "Mozilla/5.0 (Windows NT 10.0; ' 'Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 ' 'Safari/537.36"', '10.0.171.23 srv03.example.edu [12/Mar/2023:00:13:58 +0100] "GET ' '/inf/temes/pandas/Despeses_farmac%C3%A8utiques/index.html HTTP/1.1" 200 ' '"Mozilla/5.0 (compatible; SemrushBot/7~bl; ' '+http://www.semrush.com/bot.html)"'] >>> c3xx = codi_3xx(linies_l[3:6]) >>> pprint(c3xx) [('srv05.example.edu', '/fi/examens/curs2021-2022/1/L1/G60/rebut.html', '10.0.253.145')] >>> pprint(linies_l[6:]) ['10.0.70.206 srv06.example.edu [12/Mar/2023:00:04:39 +0100] "GET ' '/fi/examens/curs2020-2021/2/L2/G20/p4.html HTTP/1.1" 301 "Mozilla/5.0 ' '(compatible; Googlebot/2.1; +http://www.google.com/bot.html)"', '10.0.85.180 srv10.example.edu [12/Mar/2023:02:09:53 +0100] "GET ' '/inf/_static/graphviz.css HTTP/1.1" 304 "Mozilla/5.0 (Macintosh; Intel Mac ' 'OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 ' 'Safari/605.1.15"', '10.0.188.253 srv03.example.edu [12/Mar/2023:00:16:19 +0100] "GET ' '/inf/examens/curs2020-2021/1/E3-E4-G40/dates.html HTTP/1.1" 200 "Mozilla/5.0 ' '(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/110.0.0.0 Safari/537.36"', '10.0.167.242 srv02.example.edu [12/Mar/2023:01:13:24 +0100] "GET ' '/fi/temes/diccionaris/Hotel/index.html HTTP/1.1" 301 "Mozilla/5.0 ' 'AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; ' '+http://www.bing.com/bingbot.htm) Chrome/103.0.5060.134 Safari/537.36"', '10.0.144.43 srv03.example.edu [12/Mar/2023:03:30:54 +0100] "GET ' '/programming/examens/2020/E2/statement/store.html HTTP/1.1" 304 "Mozilla/5.0 ' 'AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; ' '+http://www.bing.com/bingbot.htm) Chrome/103.0.5060.134 Safari/537.36"', '10.0.211.108 srv08.example.edu [12/Mar/2023:00:21:19 +0100] "GET ' '/inf/temes/grafs/Arbre_geneal%C3%B2gic/index.html HTTP/1.1" 200 "Mozilla/5.0 ' '(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.63"'] >>> c3xx = codi_3xx(linies_l[6:]) >>> pprint(c3xx) [('srv06.example.edu', '/fi/examens/curs2020-2021/2/L2/G20/p4.html', '10.0.70.206'), ('srv02.example.edu', '/fi/temes/diccionaris/Hotel/index.html', '10.0.167.242'), ('srv03.example.edu', '/programming/examens/2020/E2/statement/store.html', '10.0.144.43')]