为什么在python上ipv6连接失败?

Jia*_*ong 3 python sockets ipv6 connect

为什么ipv6连接失败?

   # python
    >>> import socket
    >>> s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
    >>> sa = ('2000::1',2000,0,0)
    >>> s.connect(sa)            
    >>> sa = ('fe80::21b:78ff:fe30:7c6', 2000, 0, 0)  
    >>> s.connect(sa)
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
      File "<string>", line 1, in connect
    socket.error: (22, 'Invalid argument')
Run Code Online (Sandbox Code Playgroud)

Jer*_*ner 6

链接本地地址(例如fe80 :: whatever)通常需要指定范围ID才能工作.尝试

sa = ('fe80::21b:78ff:fe30:7c6%en0', 2000, 0, 0)  
Run Code Online (Sandbox Code Playgroud)

代替.(如果您尝试连接的计算机()可以通过en0以外的网络接口访问,请替换现在en0所在的接口的名称)