问题标签 [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 投票
3 回答
20865 浏览

c# - 将 ipv6 转换为 ipv4 的问题

我在一个 asp.net 应用程序中有一些代码需要获取客户端计算机的 ipv4 地址(用户都在我们自己的网络上)。最近我们将运行应用程序的服务器升级到 Windows 2008 服务器。现在,当客户端在较旧的操作系统上时,Request.UserHostAddress 代码返回 ipv4,当客户端在较新的操作系统(Vista 和更高版本)上时返回 ipv6。因此,依赖于此的功能适用于某些客户而不适用于其他客户。

我添加了应该从 ipv6 转换为 ipv4 的代码来尝试解决这个问题。它来自这个在线教程:http ://www.4guysfromrolla.com/articles/071807-1.aspx。我正在使用 dsn.GetHostAddress 然后循环通过返回的 IP 寻找一个“InterNetwork”

问题是这对我不起作用。从 ipv4 连接的客户端继续返回客户端计算机的正确 ipv4 IP,但从 Vista 和 Windows 7 连接的客户端返回的是SERVER机器而不是客户端计算机的 ipv4 IP。

0 投票
6 回答
9640 浏览

php - 将 IPv6 存储在数据库中

在 MySQL 数据库中使用 PHP 存储 IP 的最佳做法是什么?有一个名为 ip2long 的函数——但这仅适用于 IPv4。但是 IPv6 呢?

我知道一个用于 IPv6 IP 的 php 函数,但它不适用于 PHP < 5.3 版的 Windows

0 投票
3 回答
6978 浏览

python - Python 2 和 IPv6

我正在尝试在 Python 2 应用程序中启用 IPv6,但遇到了麻烦。每当我尝试绑定到 IPv6 套接字时,socket.error: getsockaddrarg: bad family都会引发异常。我可以通过执行以下操作来重现错误:

如果我在 Python 3 中运行,此代码可以正常工作。不幸的是,该脚本需要大量的移植工作才能在 Python 3 中工作,我宁愿不必这样做。

我需要做些什么才能让 IPv6 在 Python 2 中工作还是我是 SOL?

详细信息:Linux2 上的 Python 2.6.2 (r262:71600, Oct 24 2009, 03:16:31) [GCC 4.4.1 [gcc-4_4-branch revision 150839]](它是标准 openSUSE 11.2 安装的一部分的 Python )。

更新

在 AndiDog 帮助我弄清楚即使未配置 IPv6 时也定义了 socket.AF_INET6 之后,我发现socket.has_ipv6. 这被定义为布尔值,并指示 Python 是否使用 IPv6 构建。

0 投票
7 回答
31945 浏览

windows - 检测是否在 Windows 机器上启用了 IPv6

我正在编写一个 powershell 脚本,它将作为我们服务器的构建合规性测试。我需要做的一件事是检测 IPv6 网络是否已被禁用。

WMI 指示此信息可以在 Win32_NetworkAdapterConfiguration 的 IPAddress 属性中找到,但可以是 IPv6 或 IPv4。这并没有给我一个我希望找到的“是/否”答案。

其他需要注意的是,我不希望通过直接访问注册表来获取详细信息,也不希望从 ipconfig 等命令的输出中获取详细信息。

鉴于我们的环境混合了 2003/2008 机器,任何人都可以想出一种测试 IPv6 的方法吗?

干杯

0 投票
1 回答
231 浏览

caching - IPv6 数据包重写和缓存

我有一个运行 Linux 的路由器,它充当 Internet 的中央网关,用于使用 IPv6 进行通信的嵌入式设备网络。我想拦截、检查和重写从 Internet 进出到该子网的每个数据包。我需要这样做的原因是我想创建一个透明的(对两端)代理服务,它将传入和传出的数据包重定向到根据数据包内容存在于其他地方的缓存。

这些设备使用他们自己的通过 UDP 运行的应用程序协议进行通信,因此我不能直接重复使用像 Squid 这样的东西。像 libpcap 这样的地方是最好的起点吗?还是我应该从头开始重写 Squid?这是我第一次真正深入了解网络,我不确定从哪里开始。

0 投票
1 回答
4565 浏览

c# - GetHostEntry.AddressList[0] 在当前 Windows 版本上返回 ::1,即使 IPv6 关闭。我可以改变这个吗?

我正在使用一个被愚蠢地硬编码的第三方库套件来调用 GetHostEntry.AddressList[0] 以获得本地 IP 地址。它也不是为支持 IPv6 而编写的。我在所有网络接口上禁用了 IPv6,但我的测试程序(以及第 3 方库)中的 AddressList[0] 仍然返回 {::1} 而不是我的第一个 IPv4 地址。是否有任何 Windows 设置我可以更改以解决此问题,使其表现得像 Windows XP(返回第一个 IPv4 地址)?

这是我用来验证行为的测试程序:

在 Windows XP 机器上,程序的输出是 192.168.56.1

在我的 Windows 7 机器上,程序的输出是 ::1 192.168.56.2

有什么建议么?更改第三方库代码不是我可用的选项。

0 投票
3 回答
4238 浏览

perl - 如何在 LWP 中启用 IPv6 支持?

以下代码...

.. 将失败 ..

.. 如果 $url 中的主机名是仅 IPv6 地址(即:存在AAAA记录,但没有A记录)。

我的问题是:

  • 如何在 LWP 中启用 IPv6 支持?
  • 如何为“prefer-IPv4-over-IPv6”(Avs. AAAA)/“prefer-IPv6-over-IPv4”(AAAAvs. A)配置 LWP 的设置?
0 投票
3 回答
1712 浏览

php - PHP5.3 不适用于 MySQL5.1 IIS7 超时

我已经在 Window 7 上设置了 PHP5.3、MySQL5.1 和 IIS7,但 php 不想使用 MySQL。我假设这是我的配置错误或安装不完整。

  1. MySQL5.1 正在运行
  2. PHP5.3 正在工作,phpinfo() 显示信息并且我已启用 MySQL
  3. IIS 已设置并使用 fastCgiModule 运行 PHP
  4. IIS 注册 php.ini 更新
  5. 端口 3306 没有防火墙,对世界开放
  6. php.ini 配置正确
  7. 我已将 c:\php 添加到 Windows 系统 PATH

过去我记得将文件 libmysql.dll 移动到 System32 但我看起来不像 php5.3.1 附带的,因为现在内置了驱动程序http://us3.php.net/manual/en/ mysqlnd.install.php

(这给我带来了很多麻烦,我一直在我的博客上记录我的发现http://inteldesigner.com/2010/code/having-problems-getting-php5-3-to-work-with-mysql5-1 )

需要

  1. 我需要手动安装 PHP,不想使用快速安装程序或旧版本
  2. 我需要让 PHP5.3 与 MySQL5.1 一起工作,这样我才能安装 Wordpress2.9 和 Drupal7a

任何链接或建议都会很棒,我已经在 iis 网站上做了所有事情,没有任何效果。我猜他们还没有更新新软件。

错误/解决方案

解决方案在这里http : //bugs.php.net/bug.php?id=50172 感谢 iis.net 论坛http://forums.iis.net/p/1164911/1933894 上的 don.raman。 aspx

症状

mysql_connect()php5.3结合php函数锁定服务器并返回错误500。(IPv6是问题见上面的链接)

测试代码

错误

从浏览器:

当我从命令行运行php -f c:\public_html\index.php时,我得到:

0 投票
2 回答
3675 浏览

networking - 本地主机上的双栈 ipv6/ipv4

我有一个 ipv4 服务器,它只接受通过 localhost 的连接(使用INADDR_LOOPBACK)。我想将此服务器转换为双栈 ipv6/ipv4。但是, usingin6addr_loopback只接受到::1.

我发现我可以同时接受 ipv4 和 ipv6 连接in6addr_any,但是因为这也允许来自任何地方的连接,这对我的特定情况没有用处。

是否可以同时绑定到 ipv6 localhost ( ::1) 和 ipv4 localhost ( 127.0.0.1)?

0 投票
4 回答
3222 浏览

.net - IPv6/IPv4 网络中的设备自动发现

我们在房间中安装了 Win CE IPv6/IPv4 设备并连接到网络。不时有人会带着笔记本电脑,将其插入网络并运行诊断程序。
该程序应该能够以某种方式自动查找或发现所有这些设备。问题是诊断程序不知道设备 IP。

我一直在研究 IPv6 链路本地发现,但我不太确定如何测试它。

在我们的本地 LAN 中,如果我 ping 另一台计算机的已知 IPv6 地址,它 ping 正常,但如果我 ping -6 fe80::1 我得到“目标主机无法访问”,对于 ping -6 FF02::1,我得到“请求定时出去”

所以我不确定如何在 Windows 上测试链接本地发现。

那么如何做到这一点呢?