标签: ipv6

IPv6对应用程序开发和设计有哪些好处/影响?

有很多关于IPv6以及即将从IPv4切换到IPv6的新闻.我对IPv6有一些了解,但我经常想知道IPv6对应用程序开发和设计有多大影响(特别是)?

是否有一些我们今天还没有提供的有形/众所周知的好处?

我知道Windows Vista和Server 2008支持开箱即用的IPv6,今天是否有人使用(或设计使用IPv6),如果是这样,有什么好处?我们是否应该在当前和未来的项目中考虑IPv6?

是否有任何关于IPv6感知应用程序的例子?

network-protocols ipv6

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

Perl IPv6地址扩展/解析

我有一个类似于2001:db8::1标量的地址,并希望得到扩展形式,2001:0db8:0000:0000:0000:0000:0000:0001.主要的Perl软件包是否在其广阔的森林中运送 - /usr/lib/perl5/...一个已经完成此操作的模块?如果没有,有人会有几行会这样做吗?

perl ipv6

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

如何在特定接口上打开套接字并同时接收IPv4和IPv6流量

使用IPv4,我可以将()绑定到特定地址,以选择将用于接收数据包的接口(在某些情况下,也可以发送,但这不是重点).

在双栈IPv6/IPV4机器上我有这个问题:我可以创建一个6套接字并使用它来接收4个流量,但如果我想绑定到特定接口,我必须选择要绑定的IP地址.

如果我绑定到IPv6地址,我将过滤掉所有IPv4流量,反之亦然.

如何从特定接口接收IPv4和IPv6流量?

bind ipv4 ipv6

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

我应该在与IPv4不同的端口上侦听IPv6连接吗?

我有一个程序,它监听连接并处理它们.我知道许多网络堆栈支持通过同一个套接字/端口接受IPv4和IPv6连接,但我也听说Windows XP不是其中之一.为了在所有平台上运行相同的代码,我应该只在单独的端口上监听IPv6连接吗?

c sockets networking ipv6

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

IPv6 Max OS X 10.6 ping失败

$ ifconfig
...
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:16:cb:94:1a:79 
inet6 fe80::216:cbff:fe94:1a79%en0 prefixlen 64 scopeid 0x4 
inet 192.168.163.200 netmask 0xfffffe00 broadcast 192.168.163.255
media: autoselect (100baseTX <full-duplex,flow-control>)
status: active
...
Run Code Online (Sandbox Code Playgroud)

所以,你可以看到我的机器fe80::216:cbff:fe94:1a79en0界面上有地址.也,

$ ping6 fe80::216:cbff:fe94:1a79%en0
PING6(56=40+8+8 bytes) fe80::216:cbff:fe94:1a79%en0 --> fe80::216:cbff:fe94:1a79%en0
16 bytes from fe80::216:cbff:fe94:1a79%en0, icmp_seq=0 hlim=64 time=0.153 ms
^C
--- fe80::216:cbff:fe94:1a79%en0 ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.153/0.153/0.153/0.000 ms

$
Run Code Online (Sandbox Code Playgroud)

但为什么

$ ping6 fe80::216:cbff:fe94:1a79
ping6: UDP connect: No route to …
Run Code Online (Sandbox Code Playgroud)

ip macos ping ipv6 osx-snow-leopard

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

在存储之前加密用户的IP地址

我正在使用PHPMySQL,我想将用户的IP地址存储到数据库中以进行比较(例如,每个IP只允许一个标志到一个线程).可以通过以下方式进行吗?

在PHP中检索它:

$ipAddress = md5($_SERVER["REMOTE_ADDR"]);
Run Code Online (Sandbox Code Playgroud)

然后将其保存到数据库中VARCHAR(32).

如果我不得不更全面地使用IP,我认为这不是正确的方法,但如果只是为了确保相同的IP没有做两次,那么可以使用md5加密简化事情(将IPv4IPv6地址统一为一个)?

php mysql ip ipv4 ipv6

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

强制InetAddress.getHostAddress()返回IPv4地址

我正在使用一个java.net.InetAddress.getLocalHost().getHostAddress()用于获取本地IP地址的库.但是,这始终会在我的计算机上返回IPv6地址(Gentoo Linux,JDK 1.6.0_37).该地址还用于不支持IPv6地址的上下文中,因此失败.

有没有办法强制getHostAddress()返回IPv4地址(例如通过参数到JVM)?

java ipv4 ipv6

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

从MAC转换为IPv6

我想了解如何将MAC地址转换为IPv6.例如:00:01:04:76:2A:5C应该变为FE80 :: 0201:04FF:FE76:2A5C

有人可以详细说明转换吗?我们假设一个没有随机参数的自动配置用于本地机器.

ipv6

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

IPV6 Swift可达性

我是swift和xcode的新手,因为IPV6我的应用被拒绝了:

表现 - 2.1

当我们执行以下操作时,您的应用程序在iPad和运行iOS 9.3.5的iPhone上崩溃连接到IPv6网络:

具体来说,当我们触摸应用程序右下角的"更多"按钮时,它会崩溃.

我花了很多时间在ipv6上阅读并得出结论,它可能是我正在使用的可达性类.

我有几个问题,如何修改代码以包含ipv6:

public class Reachability {

    class func isConnectedToNetwork() -> Bool {

        var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
        zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
        zeroAddress.sin_family = sa_family_t(AF_INET)

        let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
            SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, UnsafePointer($0))

        }

        var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0)
        if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false {
            return false
        }

        let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
        let needsConnection = …
Run Code Online (Sandbox Code Playgroud)

ipv6 ios swift

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

如何让Phoenix收听IPv6?

我正在努力寻找有关使Phoenix(以及Cowboy和Ranch)同时收听IPv4和IPv6的信息。

我正在使用Ubuntu 16.04在VPS上运行。它同时具有IPv4和IPv6地址。运行时,netstat -tulpn它表明beam仅侦听具有Phoenix配置中指定端口的IPv4。而其他进程(例如epmd)能够同时监听IPv4和IPv6。

我已经试过指定端口像"::4000"config.exs,但它崩溃因未能解析为整数。

有人可以指出我正确的方向吗?我是否需要以某种方式添加自定义的Cowboy侦听器?

我宁愿不必在前面运行Nginx来侦听IPv6流量。

我尝试的配置:

config :my_app, MyApp.Endpoint,
  http: [port: "[::]:4000"]
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪(看起来像Phoenix只需要一个整数端口):

** (Mix) Could not start application my_app: MyApp.start(:normal, []) returned an error: shutdown: failed to start child: MyApp.Endpoint
    ** (EXIT) shutdown: failed to start child: Phoenix.Endpoint.Server
        ** (EXIT) an exception was raised:
            ** (ArgumentError) argument error
                :erlang.binary_to_integer("[::]:4000")
                (phoenix) lib/phoenix/endpoint/server.ex:32: Phoenix.Endpoint.Server.to_port/1
                (phoenix) lib/phoenix/endpoint/server.ex:28: Phoenix.Endpoint.Server.default/3
                (phoenix) lib/phoenix/endpoint/server.ex:17: anonymous fn/5 in Phoenix.Endpoint.Server.init/1
                (elixir) lib/enum.ex:1623: Enum."-reduce/3-lists^foldl/2-0-"/3
                (phoenix) lib/phoenix/endpoint/server.ex:15: Phoenix.Endpoint.Server.init/1 …
Run Code Online (Sandbox Code Playgroud)

ipv6 cowboy phoenix-framework

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