Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5516

Re: [Python-de] socket.create_connection() ipv4 oder ipv6?

From Julian Gethmann <mail.python.org@gethmann.org>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] socket.create_connection() ipv4 oder ipv6?
Date 2019-06-25 15:42 +0200
Message-ID <mailman.21.1561470135.29664.python-de@python.org> (permalink)
References <qess02$t26$1@news2.informatik.uni-stuttgart.de> <gnebcoFcaktU1@mid.individual.net> <qet6ra$vtp$1@news2.informatik.uni-stuttgart.de> <f6e249a1-8afd-335f-53b9-bd4b63a7fe04@gethmann.org>

Show all headers | View raw


Hi,

bei mir liefert

 >>> sock.family 
 

<AddressFamily.AF_INET6: 10>

zurück. Ein Blick in die Python-Quellen zeigt, dass getaddrinfo benutzt 
wird, welches auch sowohl v6, als auch v4 zurück liefert.
Ich denke, dass die Betriebssystem-Funktionen genutzt werden, sprich auf 
aktuellen Linux, Mac und Windows v6 priorisiert wird (afaik).

Hoffentlich hilft das schon mal ein bisschen weiter. Nach 
"socket.getaddrinfo??" kommt dann C-code ;)


Mit freundlichen Grüßen,
Julian Gethmann

On 25/06/2019 15.16, Ulli Horlacher wrote:
> Peter Heitzer <peter.heitzer@rz.uni-regensburg.de> wrote:
> 
>>>   sock = socket.create_connection(('flupp.belwue.de',591))
>>
>>> bekomme ich einen tcp Link. Das funktioniert.
>>
>>> In der Doku steht dazu:
>>
>>> https://docs.python.org/3/library/socket.html
>>
>>>   Connect to a TCP service listening on the Internet address (a 2-tuple
>>>   (host, port)), and return the socket object. This is a higher-level
>>>   function than socket.connect(): if host is a non-numeric hostname, it
>>>   will try to resolve it for both AF_INET and AF_INET6, and then try to
>>>   connect to all possible addresses in turn until a connection succeeds.
>>
>>
>>> flupp.belwue.de hat sowohl ipv4 als auch ipv6 Adresse.
>>> Welche wird genommen und warum?
>>
>> In der Doku steht auch:
>> To use create_connection() to connect to a IPv6 address the server socket also should have been created using the address family AF_INET6.
>> Ich verstehe das so, daß du wenn du den Socket mit AF_INET erzeugt hast,
>> nur eine V4 Auflösung gemacht wird und bei Erzeugen mit AF_INET6 nur
>> eine V6 Auflösung. Der Socket kann ja nur entweder V4 oder V6 sein.
>> Der Default für socket.socket ist AF_INET, also wird wohl eine V4 Adresse
>> genommen.
> 
> Ich hab nichts (mehr) gemacht als:
> 
>    sock = socket.create_connection(('flupp.belwue.de',591))
> 
> Ich hab also weder AF_INET noch AF_INET6 angegeben.
> 
> Genau DAS ist ja meine Frage: was passiert, wenn ich nichts angebe?
> 
> 

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

socket.create_connection() ipv4 oder ipv6? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2019-06-25 10:11 +0000
  Re: socket.create_connection() ipv4 oder ipv6? "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2019-06-25 10:29 +0000
    Re: socket.create_connection() ipv4 oder ipv6? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2019-06-25 13:16 +0000
      Re: [Python-de] socket.create_connection() ipv4 oder ipv6? Julian Gethmann <mail.python.org@gethmann.org> - 2019-06-25 15:42 +0200
        Re: [Python-de] socket.create_connection() ipv4 oder ipv6? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2019-06-25 15:46 +0000
  Re: socket.create_connection() ipv4 oder ipv6? Florian Weimer <fw@deneb.enyo.de> - 2019-06-29 21:02 +0200
    Re: socket.create_connection() ipv4 oder ipv6? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2019-06-29 20:21 +0000

csiph-web