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

regex - 匹配有效 IPv6 地址的正则表达式

我在编写匹配有效 IPv6 地址的正则表达式时遇到问题,包括压缩形式的地址(::每个字节对中省略或前导零)。

有人可以建议一个可以满足要求的正则表达式吗?

我正在考虑扩展每个字节对并将结果与​​更简单的正则表达式匹配。

0 投票
2 回答
1563 浏览

dns - 没有 IPv6 的 Ping 失败

我们的用户界面正在与另一台机器上的另一个应用程序通信,通常使用域名进行连接。

在我们的网络上,安装 IPv6 后,DNS 名称解析工作得很好,所有机器都可以被 ping 通并正常联系。

卸载 IPv6 后,ping 相同的 DNS 名称会返回某个远程子网(24.28.193.9;本地子网为 192.168.1.1)上的 IP 地址;然后我们的应用程序无法通信。重新安装 IPv6 时,DNS 解析会自行更正。

即使在 ping 不起作用时没有 IPv6,我仍然可以使用 Windows 资源管理器通过输入\\\\MACHINE_NAME\\. 我不确定为什么名称解析似乎在这里起作用。我们在 Windows XP SP2 环境中工作。

可以ping通机器的IP。只有 DNS 名称无法正确解析。

我查找了我们的 DNS 服务器的地址。我们所有的计算机都指向网络网关,这是一个无线路由器。安装 IPv6 时,路由器的 DNS 服务器地址与未安装时相同。

最奇怪的是,我刚刚发现我 ping 什么 DNS 名称并不重要。所有对 DNS 名称的 ping 都返回相同的地址:“24.28.193.9”。

我尝试刷新 DNS 解析器缓存并在目标机器和源机器上注册 DNS。一切都无济于事。我可以 ping 的唯一 DNS 名称是当前机器的名称。

关于为什么我们的软件在没有安装 IPv6 的情况下无法通信的任何想法?


更新:

好的,我现在做了更多的研究。

我查找了我们的 DNS 服务器的地址。我们所有的计算机都指向网络网关,这是一个无线路由器。安装 IPv6 时,路由器的 DNS 服务器地址与未安装时相同。

最奇怪的是,我刚刚发现我 ping 什么 DNS 名称并不重要。所有对 DNS 名称的 ping 都返回相同的地址:“24.28.193.9”。

我尝试刷新 DNS 解析器缓存并在目标机器和源机器上注册 DNS。一切都无济于事。我可以 ping 的唯一 DNS 名称是当前机器的名称。

还有其他建议吗?非常感谢你的帮助。

0 投票
6 回答
179333 浏览

ip - IPv6地址的文本表示的最大长度?

我想将$_SERVER["REMOTE_ADDR"]PHP 返回的数据存储到 DB 字段中,非常简单的任务,真的。问题是我找不到有关IPv6 地址文本表示的最大长度的任何适当信息,这是网络服务器通过$_SERVER["REMOTE_ADDR"].

我对将文本表示形式转换为通常编码地址的 128 位不感兴趣,我只想知道最多需要多少个字符来存储$_SERVER["REMOTE_ADDR"].

0 投票
6 回答
139019 浏览

tcp - 端口如何与 IPv6 配合使用?

传统的 IPv4 点分四边形表示法用冒号将地址与端口隔开,如以下环回接口上的 Web 服务器示例:

但是使用 IPv6 表示法,地址本身可以包含冒号。例如,这是环回地址的缩写形式:

端口(或其功能等效项)如何以 IPv6 地址/端口端点的文本表示形式表示?

0 投票
4 回答
3264 浏览

network-protocols - IPv6 对应用程序开发和设计有什么好处/影响?

关于 IPv6 以及即将从 IPv4 切换到 IPv6 的报道很多。我对 IPv6 有一些了解,但我经常想知道 IPv6 对应用程序开发和设计(具体而言)有多大影响?

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

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

是否有任何支持 IPv6 的应用程序的 好例子?

0 投票
3 回答
2673 浏览

python - 在python中提取ipv6前缀

给定 IPv6 地址的二进制或字符串表示形式及其前缀长度,在 Python 中提取前缀的最佳方法是什么?

是否有图书馆可以为我做这件事,或者我必须:

  1. 将地址从字符串转换为 int (inet_ntop)
  2. 屏蔽前缀
  3. 将前缀转换回二进制
  4. 将二进制转换为字符串 (inet_ntop)
0 投票
4 回答
3555 浏览

python - 用于 pcapy/impacket 的 IPv6 解码器

我使用pcapy / impacket库在 Python 中解码网络数据包。它有一个 IP 解码器,它知道 IPv4 数据包的语法,但显然没有 IPv6 解码器。

有人得到吗?

Impacket维护人员在私人通信中表示,从 Scapy 开始可能会更好

0 投票
2 回答
2509 浏览

c - 在 IPv6 中使用 resolv.h 的名称解析器

我编写或修改执行名称解析并需要对过程进行良好控制的程序。所以我不使用getaddrinfo(),我更深入地使用res_query()/ res_send()/ etc in resolv.h,在resolver(3)中记录。

虽然没有记录,但设置使用的解析器的常用方法是更新_res.nsaddr_list. 但是这个在 resolv.h 中定义的数组 struct sockaddr_in只存储了 IPv4 地址。(IPv6 地址是struct sockaddr_in6,独立于家庭的系统将使用struct sockaddr。)

我正在寻找一种方法(最好是可移植的,至少在各种 Unix 中)来告诉_res我我也想要 IPv6 地址。

显然,很久以前,FreeBSD 中就有_res_ext这种能力,但我在最近的 FreeBSD 7 中找不到它(grep _res_ext /usr/include/resolv.h什么也没找到)。您仍然可以找到 使用它的代码(使用 Google Codesearch自己尝试)。

感谢Alnitak,我注意到它显然是现在_res._ext而不是.res_ext。我想知道这些事情是在哪里记录或宣布的……我不知道便携_res._ext性如何。我可以在 Debian 和 FreeBSD 上找到它。似乎很少有程序使用它。

0 投票
25 回答
332539 浏览

linux - 有没有办法让非 root 进程绑定到 Linux 上的“特权”端口?

对我的开发框有这个限制是非常烦人的,因为除了我之外永远不会有任何用户。

我知道标准的解决方法,但没有一个完全符合我的要求:

  1. authbind(Debian 测试中的版本,1.0,仅支持 IPv4)
  2. 使用 iptables REDIRECT 目标将低端口重定向到高端口(ip6tables 的“nat”表尚未实现,iptables 的 IPv6 版本)
  3. sudo(以root身份运行是我要避免的)
  4. SELinux(或类似的)。(这只是我的开发箱,我不想引入很多额外的复杂性。)

是否有一些简单sysctl的变量允许非 root 进程绑定到 Linux 上的“特权”端口(端口小于 1024),或者我只是运气不好?

编辑:在某些情况下,您可以使用功能来执行此操作。

0 投票
3 回答
6097 浏览

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

我正在使用 python 制作一个简单的服务器应用程序,并且我正在尝试获取 IP 以将侦听套接字绑定到。我看过的一个例子使用了这个:

在此之后进行更多处理,它应该只给我主机 IP 作为字符串。这应该返回 IPv4 地址。但是当我运行这段代码时,它会返回我的 IPv6 地址。为什么会这样?我怎样才能获得我的 IPv4 地址?

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