标签: ipv6

将 CIDR 表示法中的 IPv4 IP 范围映射到 IPv6

我想将 CIDR 表示法中的 IPv4 范围转换为 IPv6。除了在它们前面加上“::ffff:”前缀之外,是否只需在网络位数上添加 96 即可?例如

1.2.3.4/32 -> ::ffff:1.2.3.4/128
1.2.3.0/24 -> ::ffff:1.2.3.0/112
Run Code Online (Sandbox Code Playgroud)

还有比这更多的事情吗?我还没有找到可以检查的库方法或网络工具来执行此操作。

ipv6

4
推荐指数
1
解决办法
1170
查看次数

Docker-compose 在 IPv6 上公开端口

我正在尝试在 IPv6 上运行一个带有多个公开端口的 docker 容器。我不希望容器拥有自己的 IPv6 地址。我想要的只是让它们可以在主机的 IPv6 地址下访问(使用端口转发)。

\n

我在 docker 守护进程中启用了 IPv6 ( http://docs.docker.oeynet.com/engine/userguide/networking/default_network/ipv6/ )。

\n

我试过

\n
ports:\n  # The HTTP port\n  - ":::80:80"\n
Run Code Online (Sandbox Code Playgroud)\n

在容器的 docker-compose.yaml 中,但这似乎完全搞乱了配置:

\n
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS                  PORTS                                                                                  NAMES\n9774a1a6322c   traefik:latest           "/entrypoint.sh --ap\xe2\x80\xa6"   1 second ago   Up Less than a second   80/tcp                                                                                 traefik\n
Run Code Online (Sandbox Code Playgroud)\n

使用另一个容器(不在我的控制之下,我似乎无法找出它是如何启动的),端口被正确转发:

\n
a04b40299a8f   portainer/portainer-ce   "/portainer"             7 days ago     Up 3 minutes            0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer\n
Run Code Online (Sandbox Code Playgroud)\n

也可以使用主机的 IPv6 地址访问此容器(如预期)。\n如何为第一个容器实现此目的?

\n

port ipv6 docker docker-compose

4
推荐指数
2
解决办法
1万
查看次数

为什么gethostbyaddr(gethostname())返回我的IPv6 IP?

我正在使用python创建一个简单的服务器应用程序,我正在尝试将IP绑定到侦听套接字.我看过的一个例子使用了这个:

HOST = gethostbyaddr(gethostname())
Run Code Online (Sandbox Code Playgroud)

在此之后稍微处理一下,它应该只给出主机IP作为字符串.这应该返回IPv4地址.但是当我运行此代码时,它会返回我的IPv6地址.为什么这样做以及如何获取我的IPv4地址?

如果相关,我使用的是windows vista和python 2.5

python sockets ip-address ipv4 ipv6

3
推荐指数
2
解决办法
5283
查看次数

如何初始化struct in6_addr?

我知道有一种方法可以做到这一点,

const struct in6_addr naddr6 = { { 
                0x3f, 0xfe, 0x05, 0x01,
                0x00, 0x08, 0x00, 0x00, 
                0x02, 0x60, 0x97, 0xff,
                0xfe, 0x40, 0xef, 0xab
}};
Run Code Online (Sandbox Code Playgroud)

但不能用这个,

const struct in6_addr naddr6 = 
                { { { 0x3ffe0501, 0x00080000, 0x026097ff, 0xfe40efab } } }; 
Run Code Online (Sandbox Code Playgroud)

似乎我可以1/2/3巴黎的括号.为什么?

谢谢.

network-programming ipv6

3
推荐指数
1
解决办法
8829
查看次数

sockaddr_in6没有申报?

我正在尝试将ipv4服务器/客户端移植到ipv6,但编译器说SOCKADDR_IN6没有在范围内声明.SOCKADDR_IN是宣布但不是SOCKADDR_IN6.<Winsock2.h>已经包括了.

任何人都有任何想法,为什么它将是未宣布的?

c++ winsock ipv6

3
推荐指数
1
解决办法
8211
查看次数

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

为什么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)

python sockets ipv6 connect

3
推荐指数
1
解决办法
1897
查看次数

IPv6套接字程序问题

似乎流不会进入ipv6server.c中包含accept的"for"循环,因此无法接受并连接客户端.怎么回事?此代码适用于IPV4但在IPV6更改后出现此问题

ipv6server.c

    #include <stdio.h>
    #include <stdlib.h> /* needed for os x */
    #include <string.h> /* for memset */
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <sys/errno.h>   /* defines ERESTART, EINTR */
    #include <sys/wait.h>    /* defines WNOHANG, for wait() */

    #include "port.h"       /* defines default port */

    #ifndef ERESTART
    #define ERESTART EINTR
    #endif

extern int errno;

    void serve(int port);   /* main server function */
    void disconn(void);

    main(int argc, char **argv)
    {
        extern char *optarg;
        extern int optind;
        int c, err = 0; 
        int …
Run Code Online (Sandbox Code Playgroud)

c c++ sockets ipv6

3
推荐指数
2
解决办法
6568
查看次数

使用JSP发送电子邮件

这个问题让我疯了.我有以下代码:

<html>
<body>
<%@ page import="java.util.*" %>
<%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<%@ page import="javax.activation.*" %>
<%
String host = "exchsrv2";
String to = "alan@domain.com";
String from = "apeince@domain.com";
String subject = "test";
String messageText = "body test";

Properties props = System.getProperties();
props.put("mail.host", host);
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.port", "25");
Session mailSession = Session.getDefaultInstance(props, null);

Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText);

Transport.send(msg);
out.println("Mail was sent to " …
Run Code Online (Sandbox Code Playgroud)

jsp exchange-server jakarta-mail ipv6 java-7

3
推荐指数
1
解决办法
2万
查看次数

在Python中反向DNS查找

如果我有一个像2001:4860:4860 :: 8888的IP地址

如何以foo.ip6.arpa格式获取完全限定的域?

编辑:到目前为止,这两个解决方案都给我google-public-dns-a.google.com - 可能反向DNS是错误的名称.为此,我希望输出类似于8.8.8.8.0 ... etc.ip6.arpa

python ipv6

3
推荐指数
2
解决办法
1941
查看次数

如何在没有DNS的浏览器上打开公共IPv6 IP

我试图在浏览器上打开IPv6.

对于localhost,我试过:

http://::1
Run Code Online (Sandbox Code Playgroud)

- >不起作用

我尝试:

http://[::1]
Run Code Online (Sandbox Code Playgroud)

- >它的工作原理

然后,我尝试打开公共IP(google.com IP6,请参阅$ host google.com输出): 在此输入图像描述

http://2a00:1450:4006:803::200e
Run Code Online (Sandbox Code Playgroud)

我也尝试:

http://[2a00:1450:4006:803::200e]
Run Code Online (Sandbox Code Playgroud)

- >所有尝试都失败了.

在不更改/etc/hosts配置文件的情况下,我们如何打开此版本的IP?

browser dns ipv6

3
推荐指数
1
解决办法
3974
查看次数