ヒント
ヒント 1見る
各行の先頭の IP が 192.168.1.100 と完全に一致するものだけを取り出します('192.168.1.10' や '192.168.1.101' は別の IP です)。正規表現なら、行頭の 192.168.1.100 の直後に空白が続く形で判定します
ヒント 2見る
その中の GET /notes?part=N&data=XXXX が断片の送信です。同じ part に失敗した送信(404 / 500)が混ざっているので、ステータスが 200 の行だけを使います
ヒント 3見る
part の昇順(時刻順ではありません)に data をつなぐと16進48文字の答えです。python3 challenge.py '<答え>' に渡します