w tej chwili robię:Niezawodnie dostać Adres IPv6 w Pythonie
def get_inet_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('mysite.com', 80))
return s.getsockname()[0]
ta została oparta na: Finding local IP addresses using Python's stdlib
Jednak ta wygląda nieco wątpliwe. O ile mogę powiedzieć, otwiera gniazdo do mysite.com:80, a następnie zwraca pierwszy adres dla tego gniazda, zakładając, że jest to adres IPv4. Wydaje się to trochę podejrzane ... Nie sądzę, że kiedykolwiek możemy zagwarantować, że tak będzie.
To moje pierwsze pytanie, czy jest to bezpieczne? Na serwerze obsługującym IPv6, czy adres IPv6 może zostać nieoczekiwanie zwrócony?
Moje drugie pytanie brzmi: w jaki sposób uzyskać adres IPv6 w podobny sposób. Zamierzam zmodyfikować funkcję, aby pobrać opcjonalny parametr ipv6.
to nie jest wiarygodną metodą dla IPv4 . –
Tak, nie myślałem. Proszę wyjaśnij dalej. –