İşin ilginç tarafı yolladığımız isteğe göre https://ipv4bot.whatismyipaddress.com/ adresinin farklı değerler, yani sizin deyiminiz ile bozuk bir HTML döndürmesi. Ki bence bu Accept-Encoding: gzip, deflate kısmından kaynaklanıyor. Yani bana biraz servisin hakkını yemişsiniz gibi geldi Biz headerde gzip dediğimiz için bize o şekilde dönüş yapıyor.
import gzip
import socket
s = socket.socket()
s.connect(("ipv4bot.whatismyipaddress.com",80))
s.send(b'GET / HTTP/1.1\r\nHost: api.ipify.org\r\nUser-Agent: python-requests/2.22.0\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n')
raw = s.recv(1024)
data = raw.rsplit(b"\n",1)[1]
print(gzip.decompress(data))
Bazi versiyonlar <body> tag’inin kullanilmamasina izin veriyor ama o versiyonlarin doctype anotasyonu istiyor olmalari lazim. Son versiyon sart kiliyor.