Voglio ceate presa Ipv6 in pitone, lo faccio in questo modo:Come creare un socket IPv6 su python? Perché ho preso il socket.error: (22, 'argomento non valido')?
#!/usr/bin/env python
import sys
import struct
import socket
host = 'fe80::225:b3ff:fe26:576'
sa = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
sa.bind((host , 50000))
Ma non è riuscito:
socket.error: (22, 'Invalid argument') ?
Qualcuno mi può aiutare? Grazie!
ho rifare come questo, ma ancora non in grado di lavorare
>>>host = 'fe80::225:b3ff:fe26:576'
>>>sa = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
>>>res = socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_DGRAM, 0, socket.AI_PASSIVE)
>>>family, socktype, proto, canonname, sockaddr = res[0]
>>>print sockaddr
('fe80::225:b3ff:fe26:576', 50001, 0, 0)
>>>sa.bind(sockaddr)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<string>", line 1, in bind
socket.error: (22, 'Invalid argument')
Hai verificato che socket.has_ipv6 restituisce true? –
Perché si sta vincolando a un indirizzo locale di collegamento arbitrario? Nel 99% dei casi, si desidera eseguire il binding a :: (ad esempio tutte le interfacce). –