问题标签 [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.
regex - 匹配有效 IPv6 地址的正则表达式
我在编写匹配有效 IPv6 地址的正则表达式时遇到问题,包括压缩形式的地址(::
每个字节对中省略或前导零)。
有人可以建议一个可以满足要求的正则表达式吗?
我正在考虑扩展每个字节对并将结果与更简单的正则表达式匹配。
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 名称是当前机器的名称。
还有其他建议吗?非常感谢你的帮助。
ip - IPv6地址的文本表示的最大长度?
我想将$_SERVER["REMOTE_ADDR"]
PHP 返回的数据存储到 DB 字段中,非常简单的任务,真的。问题是我找不到有关IPv6 地址文本表示的最大长度的任何适当信息,这是网络服务器通过$_SERVER["REMOTE_ADDR"]
.
我对将文本表示形式转换为通常编码地址的 128 位不感兴趣,我只想知道最多需要多少个字符来存储$_SERVER["REMOTE_ADDR"]
.
tcp - 端口如何与 IPv6 配合使用?
传统的 IPv4 点分四边形表示法用冒号将地址与端口隔开,如以下环回接口上的 Web 服务器示例:
但是使用 IPv6 表示法,地址本身可以包含冒号。例如,这是环回地址的缩写形式:
端口(或其功能等效项)如何以 IPv6 地址/端口端点的文本表示形式表示?
network-protocols - IPv6 对应用程序开发和设计有什么好处/影响?
关于 IPv6 以及即将从 IPv4 切换到 IPv6 的报道很多。我对 IPv6 有一些了解,但我经常想知道 IPv6 对应用程序开发和设计(具体而言)有多大影响?
IPv6 是否提供了一些我们今天还没有的有形/众所周知的好处?
我知道 Windows Vista 和 Server 2008 支持开箱即用的 IPv6,现在有没有人在使用(或在设计时考虑到 IPv6),如果是,有什么好处?我们是否应该在当前和未来的项目中考虑 IPv6?
是否有任何支持 IPv6 的应用程序的 好例子?
python - 在python中提取ipv6前缀
给定 IPv6 地址的二进制或字符串表示形式及其前缀长度,在 Python 中提取前缀的最佳方法是什么?
是否有图书馆可以为我做这件事,或者我必须:
- 将地址从字符串转换为 int (inet_ntop)
- 屏蔽前缀
- 将前缀转换回二进制
- 将二进制转换为字符串 (inet_ntop)
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 上找到它。似乎很少有程序使用它。
linux - 有没有办法让非 root 进程绑定到 Linux 上的“特权”端口?
对我的开发框有这个限制是非常烦人的,因为除了我之外永远不会有任何用户。
我知道标准的解决方法,但没有一个完全符合我的要求:
- authbind(Debian 测试中的版本,1.0,仅支持 IPv4)
- 使用 iptables REDIRECT 目标将低端口重定向到高端口(ip6tables 的“nat”表尚未实现,iptables 的 IPv6 版本)
- sudo(以root身份运行是我要避免的)
- SELinux(或类似的)。(这只是我的开发箱,我不想引入很多额外的复杂性。)
是否有一些简单sysctl
的变量允许非 root 进程绑定到 Linux 上的“特权”端口(端口小于 1024),或者我只是运气不好?
编辑:在某些情况下,您可以使用功能来执行此操作。
python - 为什么 gethostbyaddr(gethostname()) 返回我的 IPv6 IP?
我正在使用 python 制作一个简单的服务器应用程序,并且我正在尝试获取 IP 以将侦听套接字绑定到。我看过的一个例子使用了这个:
在此之后进行更多处理,它应该只给我主机 IP 作为字符串。这应该返回 IPv4 地址。但是当我运行这段代码时,它会返回我的 IPv6 地址。为什么会这样?我怎样才能获得我的 IPv4 地址?
如果相关,我使用的是 windows vista 和 python 2.5