问题标签 [ipv6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1653 浏览

ip - 如何计算 IPv6 IP 号码?

我正在使用 MaxMinds 的 GeoIP Lite Country 将 GeoIP 跟踪添加到 WCF Web 服务。一切都适用于他们的 IPv4 数据库,但他们没有提供任何样本来计算 IPv6 IP 号码。我联系了他们,他们说要使用搜索引擎。

有人愿意分享样品吗?任何语言都可以。

0 投票
4 回答
14233 浏览

c++ - 将 C++ TCP/IP 应用程序从 IPv4 转换为 IPv6。难的?值得麻烦吗?

多年来,我使用 WinSock(路由器、Web/邮件/FTP 服务器等...等)为 Windows 开发了少量 C++ 服务器/客户端应用程序。

我开始越来越多地考虑创建这些应用程序的 IPv6 版本(当然,同时也要保持原始 IPv4 版本)。

问题:

  1. 我可能会遇到什么陷阱?
  2. 移植/转换困难吗?
  3. 转换值得吗?


作为参考(或为了好玩),您可以在我的应用程序核心中窥探IPv4 代码的峰值。

0 投票
2 回答
5021 浏览

wcf - win7 上的 WCF Duplex net.tcp 问题

我们有一个带有多个客户端的 WCF 服务来安排客户端之间的操作。它在 XP 上运行良好。转到win7,我只能将客户端连接到同一台机器上的服务器。在这一点上,我认为这与 IPv6 有关,但我不知道如何继续。

尝试连接到远程服务器的客户端会出现以下异常:

System.ServiceModel.EndpointNotFoundException:无法连接到 net.tcp://10.7.11.14:18297/zetec/Service/SchedulerService/Scheduler。连接尝试持续了 00:00:21.0042014 的时间跨度。TCP错误码10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应10.7.11.14:18297。---> System.Net.Sockets.SocketException: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接主机没有响应 10.7.11.14:18297

服务配置如下:

客户端连接如下:

我检查了我的防火墙大约十几次,但我想我可能遗漏了一些东西。试过禁用windows防火墙。我尝试将 localhost 更改为我的 ipv4 地址以尝试远离 ipv6,我尝试删除任何反 ipv6 代码。

不知道这是否意味着什么,但是:

Microsoft Telnet> open 10.7.11.14 18297
Connecting To 10.7.11.14...无法在端口 18297 上打开与主机的连接:连接失败

不幸的是,telnet 测试似乎不是关键。当服务运行时,我已经成功地从本地主机和远程计算机连接到我的服务端口,但是我的客户端无法从远程计算机工作。

似乎并不总是保证连接到本地主机。台式机 (win7/32) 工作,笔记本电脑 (win7/64) 不工作。其他 win7/64 盒子虽然可以工作。也许是由于笔记本电脑上有多个网卡?也没有解释在测试人员的系统上连接失败。

我设置了两台完全禁用 IPv6 的 win7 机器(使用http://support.microsoft.com/kb/929852中的 0xffffffff )。没有帮助。

0 投票
2 回答
6103 浏览

c# - 将 UdpClient 与 IPv4 和 IPv6 一起使用?

不久前,我创建了一个类来处理我的 LAN 网络程序。我最近将我的一台笔记本电脑升级到了 Windows 7,并发现 Windows 7(或者至少我设置它的方式)只支持 IPv6,但我的桌面仍然回到 Windows xp 时代,并且只使用 IPv4。我创建的类使用 UdpClient 类,目前设置为仅适用于 IPv4。有没有办法修改我的代码以允许发送和接收 IPv6 和 IPv4 数据包?很难废弃类代码,我的很多程序都依赖于这个类。我想保持类接近它的原始状态,所以我不需要修改我的旧程序,只需将旧类切换为更新的类。

感谢您的所有帮助,马克斯

发送:

收到:

0 投票
3 回答
7806 浏览

c - 如何将链接本地地址绑定到 ipv6 套接字

这个问题可以看作是我之前发的一个姐妹问题。当你想将一个链接本地地址绑定到一个 IPv6 套接字时,你需要设置struct的sin6_scope_id字段,这是非常繁琐的。sockaddr_in6我想知道是否有人可以按照良好做法提供解决方案。

0 投票
1 回答
2941 浏览

networking - 无法绑定到 IPv6 地址

我的 Ubuntu Karmic 系统遇到了一个奇怪的问题。

当我使用 AI_PASSIVE 和 AF_UNSPEC 调用 getaddrinfo() 以获取空主机和 UDP 12000 端口以获取可绑定地址时,我只能返回一个 IPv4 结果(例如0.0.0.0:12000)。

如果我更改调用并指定 AF_INET6 而不是 AF_UNSPEC,则 getaddrinfo() 将返回“名称或服务未知”。

结果我不应该得到[::]:12000吗?

如果我将主机设置为::1也会发生同样的事情。

当我为主机“localhost”和 UDP 12000 端口调用不带 AI_PASSIVE 的 getaddrinfo() (以获取“可连接”地址)时,我首先得到[::1]:12000然后127.0.0.1:12000

显然,我的系统已准备好 IPv6(我可以 ping 到 IPv4 和 IPv6 地址,以及 DNS 解析)。但是,我怎么无法使用 getaddrinfo() 获得要绑定的 IPv6 地址?

你们有什么想法可能是错的吗?

我的操作系统是 Ubuntu Karmic,全新安装,无需任何网络调整。

谢谢你。

PS:如果您不知道但仍想帮助我,可以获取此示例程序或键入:

wget http://people.apache.org/~jorton/gai.c

并给我以下结果:

$ ./gai -ap null 12000

我的结果是:

$ ./gai -ap null 12000

getaddrinfo(NULL, "12000", {.family=AF_UNSPEC, .hints=0|AI_ADDRCONFIG|AI_PASSIVE}) = 0:

家庭= 2,原型= 6 inet4:地址= 0.0.0.0,端口= 12000

在那里你可以看到我只有一个 IPv4 结果。

0 投票
2 回答
10702 浏览

c++ - 用 gethostbyname 替换 IPv6 地址

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

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

IPv6 的正确替代品是什么?

谢谢。

0 投票
2 回答
12129 浏览

php - PHP 中的 REMOTE_ADDR 和 IPv6

假设$_SERVER['REMOTE_ADDR']总是返回IPv4 地址是否安全?

谢谢!

0 投票
1 回答
3475 浏览

python - 将 IPv4 或 IPv6 地址转换为 long 以进行比较

为了检查 IPv4 或 IPv6 地址是否在某个范围内,我有一个代码,它采用 IPv4 地址,将其转换为 long,然后在子网的上限/下限上进行相同的转换,然后检查看看 long 是否在这些值之间。

我希望能够为 IPv6 做同样的事情,但在 Python 2.6 标准库中没有看到允许我这样做,所以我写了这个:

我的问题是:有没有一种我想念的更简单的方法来做到这一点?是否有标准库调用可以为我做到这一点?

0 投票
1 回答
7559 浏览

php - PHP禁用ipv6

似乎我需要在我的 php 页面上以某种方式禁用 IPv6,但我不确定如何执行此操作。我想我必须在我的 INI 文件中的某处添加 --disable-ipv6 ......但这看起来不像是正确的语法。

我正在尝试解决以下错误: http ://bugs.php.net/45519

有谁知道把这个放在哪里?