Yapay zekâ tarafından English dilinden çevrildi ·
ISP IPv6’yı açtıktan sonra şubelerimizden birinde tam olarak bunu yaşadık. Pi bir IPv6 adresi alıyor, önce onu deniyor, rota bozuk olduğu için IPv4’e geçmeden önce zaman aşımını bekliyor. Curl testiniz bunu gösteriyor.IPv6’yı her şey için kapatmak istemedim, bu yüzden Pi’ye IPv4’ü tercih etmesini söyledim. /etc/gai.conf dosyasındaki şu satırın yorumunu kaldırın:
precedence ::ffff:0:0/96 100
Yeni işlemler için yeniden başlatmaya gerek yok, sadece betiğinizi yeniden çalıştırın. Yalnızca betik için istiyorsanız, requests’i içe aktarmadan önce Python’da zorlayabilirsiniz:
import socket
import urllib3.util.connection as conn
conn.allowed_gai_family = lambda: socket.AF_INET
Owen’ın fikri de ileride iyi bir fikir olmaya devam ediyor. Çalınan bir anahtarın başka yerlerde işe yaramaması için otelin genel IPv4 adresini anahtarın IP izin listesine ekleyin.
Had exactly this at one of our properties after the ISP turned IPv6 on. The Pi gets an IPv6 address, tries it first, the route is broken and it waits for the timeout before falling back to IPv4. Your curl test shows that.
I didn’t want to switch IPv6 off for everything, so I told the Pi to prefer IPv4. Uncomment this line in /etc/gai.conf:
precedence ::ffff:0:0/96 100
No reboot needed for new processes, just restart your script. If you only want it for the script, you can force it in Python before importing requests:
import socket
import urllib3.util.connection as conn
conn.allowed_gai_family = lambda: socket.AF_INET
And Owen’s idea is still a good one for later. Put the hotel’s public IPv4 in the key’s IP allowlist so a stolen key is useless elsewhere.

