标签: ipv6

为ipv6实现最长前缀匹配的最佳方法是什么?

ipv6路由器存储多个路由作为n地址的第一位.2000年,研究人员在1500条ipv6路线中发现只有14种不同的前缀长度.传入数据包根据最长前缀匹配路由到不同的传出端口,因此如果数据包x的前8位与8位路由匹配,但同一数据包的前48位与48位路由匹配,则路由器必须选择48位路线.

我的路由器正在处理如此多的数据包,因此查找路由表的内存速度是一个限制因素.在路由表中找到最长匹配前缀的好算法是什么?

algorithm ipv6

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

gethostbyname替换IPv6地址

我有一个程序使用gethostbyname(在Windows中),以便将IP地址转换为主机名.

但是,它仅适用于IPv4 ......

什么是IPv6的正确替代品?

谢谢.

c++ winapi network-programming ipv6

5
推荐指数
2
解决办法
8517
查看次数

如何在C#中使用ResolveIpNetEntry2

我试图在C#中检索IPv6主机的MAC地址.我发现这个问题提到使用ResolveIpNetEntry2.经过一些谷歌搜索,并参考MSDN,我还没有找到如何从C#调用此函数的示例.此函数也在pinvoke.net上不公开.

有没有人有一个如何从C#调用ResolveIpNetEntry2的例子?

c# network-programming ipv6

5
推荐指数
1
解决办法
1290
查看次数

NodeJS数据报 - 接收IPv6多播

我正在尝试在node.js中通过IPv6接收多播数据报.我在IPv4(udp4)上完全相同的方式没有问题,但尝试为udp6做同样的事情让我在socket.addMembership调用时出现EINVAL错误.这是我的代码:

var dgram = require('dgram');
var server = dgram.createSocket('udp6');

var PORT = 12345;
var MULTICAST_ADDRESS = 'ff7e:230::1234';

server.on('message', function (message, remote) {
    console.log('Message from: ' + remote.address + ':' + remote.port +' - ' + message);
});

server.on('listening', function () {
  var address = server.address();
  console.log('UDP listening on ' + address.address + ":" + address.port);
  server.addMembership(MULTICAST_ADDRESS);
});

server.bind(PORT);
Run Code Online (Sandbox Code Playgroud)

这导致:

    Error: addMembership EINVAL
            at new errnoException (dgram.js:454:11)
            at Socket.addMembership (dgram.js:396:11)
            at Socket.<anonymous> (/media/sf_projects/ipv6_multicast/server.js:57:10)
            at Socket.EventEmitter.emit (events.js:92:17)
            at startListening (dgram.js:141:10) …
Run Code Online (Sandbox Code Playgroud)

javascript sockets datagram ipv6 node.js

5
推荐指数
1
解决办法
1494
查看次数

如何将 IPv6 地址添加到 Google API 凭据?

我正在开发一个使用 Google API(自定义搜索引擎)的 Ruby 应用程序。它与公共 API 访问密钥配合得很好。

我刚刚将互联网升级到 Uverse,突然 Google API 停止工作。我发现问题出在IP地址上。我的 Uverse 调制解调器使用 IPv6。

不幸的是,Google Developer Public API 访问密钥似乎只接受 IPv4 地址,因此当我尝试添加 IPv6 地址时,我收到错误消息:“IP 地址无效”。

有人能够让它发挥作用吗?如果可以避免的话,我宁愿不实现 oAuth。

api google-api ipv6 google-api-ruby-client

5
推荐指数
1
解决办法
1737
查看次数

如何在 PHP 中比较二进制字符串形式的 IP 地址?

我目前正在一个基于 PHP 的项目中使用 IPv4 和 IPv6 地址,并且我需要能够比较两个 IP 以确定哪一个数字更大。例如,192.168.1.9 大于 192.168.1.1。为了做到这一点,我使用inet_ptonunpack将 IP 转换为二进制字符串(我熟悉ip2long,但它仅限于 IPv4)。

这种方法一开始似乎工作正常,但我很快发现,当我将任何以 .32 结尾的 IP 与较低的 IP 地址进行比较时,我得到的结果不正确。例如,如果我将 192.168.1.0 与 192.168.1.32 进行比较,我的脚本会告诉我 192.168.1.0 大于 192.168.1.32。仅当其中一个 IP 以 0.32 结尾时才会发生这种情况。IP 的前三个八位字节可以更改,结果是相同的。

以下 PHP 代码生成一个说明此问题的页面:

// Loop through every possible last octet, starting with zero
for ($i = 0; $i <= 255; $i++) {

    // Define two IPs, with second IP increasing on each loop by 1
    $IP1 = "192.168.1.0";
    $IP2 = "192.168.1.".$i; …
Run Code Online (Sandbox Code Playgroud)

php ipv4 ipv6 inet

5
推荐指数
1
解决办法
2460
查看次数

为什么我的 Web 应用程序使用 ipv6 连接到本地 postgres

所以我一直在开发一个连接到另一台机器上的 postgresql 服务器的 Web 应用程序。一切正常。

然后我将 Web 应用程序部署到运行 postgresql 服务器的同一台计算机上,并收到一条错误消息:

FATAL: 28000: no pg_hba.conf entry for host "fe80::ccee:154f:18f5:418f%11", user "myuser", database "mydb", SSL off 
Run Code Online (Sandbox Code Playgroud)

我的 pg_hba-conf 已经有这一行:

# IPv6 local connections:
host    all             all             ::1/128                 md5  
Run Code Online (Sandbox Code Playgroud)

那应该是 ipv6 的环回地址,对吗?

我可以通过添加这一行来修复它(纯粹猜测):

#host   all             all             fe80::/16               md5
Run Code Online (Sandbox Code Playgroud)

我怀疑这可以让每个人都连接起来吗?

那么问题是为什么要使用 ipv6 而不是 ipv4?

为什么环回不起作用?

postgresql ipv6 npgsql

5
推荐指数
1
解决办法
2994
查看次数

如何使用docker-compose分配IPv6地址

我在Ubuntu 16.04上使用docker 1.12.1,在docker-compose 1.8.1上使用docker 1.12.1.我试图从https://docs.docker.com/compose/compose-file/#ipv4-address-ipv6-address获取Compose文件来运行.作为参考,我创建docker-compose.yml了以下内容:

version: '2'

services:
  app:
    image: busybox
    command: ifconfig
    networks:
      app_net:
        ipv4_address: 172.16.238.10
        ipv6_address: 2001:3984:3989::10

networks:
  app_net:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "true"
    ipam:
      driver: default
      config:
      - subnet: 172.16.238.0/24
        gateway: 172.16.238.1
      - subnet: 2001:3984:3989::/64
        gateway: 2001:3984:3989::1
Run Code Online (Sandbox Code Playgroud)

现在,跑步docker-compose up产生

Creating network "tmp_app_net" with driver "bridge"
Creating tmp_app_1
Attaching to tmp_app_1
app_1  | eth0      Link encap:Ethernet  HWaddr 02:42:AC:10:EE:0A  
app_1  |           inet addr:172.16.238.10  Bcast:0.0.0.0  Mask:255.255.255.0
app_1  |           inet6 addr: fe80::42:acff:fe10:ee0a/64 Scope:Link
app_1  | …
Run Code Online (Sandbox Code Playgroud)

ipv6 docker docker-compose

5
推荐指数
2
解决办法
8720
查看次数

哪里可以获得支持IPv6的最新版本的libWebRTC.a for iOS?

我正在维护一个使用WebRTC构建的iOS应用程序.最初的开发人员在项目中包含了一个预先构建的"libWebRTC.a".但是,自2016年6月起,Apple已强制要求所有iOS应用程序都支持IPv6.

我当前的实现不适用于IPv6.在搜索更多主题时,我遇到了这个问题:

https://bugs.chromium.org/p/webrtc/issues/detail?id=5871

这似乎表明WebRTC库存在仅在2016年6月修复的IPv6网络问题.

不幸的是我无法找到最新版本的libWebRTC.我在GitHub上遇到了多个项目,这似乎指向了这个项目:

https://github.com/pristineio/webrtc-build-scripts

但似乎这个项目可能不起作用,因为谷歌从GYP转向GN作为构建工具之一.

很高兴知道你们中是否有人设法解决这个问题并让WebRTC调用在仅支持IPv6的网络上的iOS上工作.

ipv6 ios webrtc

5
推荐指数
1
解决办法
1181
查看次数

从Mac book pro(El Capitan)在iPhone上设置IPv6连接

Apple拒绝了我的应用程序,因为它无法在IPv6连接上执行少量功能.我必须测试应用程序.我有IPv4的宽带连接.我在Mac上的网络共享中创建了一个NAT64连接.我将设备无线连接到它.设备显示它具有IPv6地址.但是,我没有任何互联网访问权限来测试我的应用程序. 这就是我创建NAT64连接的方式

xcode ipv4 ipv6 ios

5
推荐指数
0
解决办法
467
查看次数