问题标签 [ipv4]
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.
java - 如何在具有 v4 和 v6 地址的接口上获取 IPv4 子网掩码?
我有一个返回 ipv4 地址(4 个八位字节)的 InterfaceAddress。然而,网络前缀长度似乎是与接口关联的 ipv6 地址(它返回为 128)。如何找到正确的网络前缀长度?
c++ - 将 getifaddrs 移植到 Win XP
我正在尝试将 MacOSX 应用程序移植到 Windows,但遇到了有关 getifaddrs 的问题。基本上windows不支持它。我试图找到一种重新实现它的方法(对于 AF_INET 和 AF_INET6),但 Windows 上的“等效”功能似乎与 MacOSX 支持完全不同。
以前有人做过这种转换吗?如果是这样,有没有一种好方法可以让 Windows 像 MacOSX 一样向我报告界面信息?
java - 用于接受有效主机名、IPv4 或 IPv6 地址的 Java 正则表达式
任何人都有一个好的(最好是经过测试的)正则表达式来只接受有效的 DNS 主机名、IPv4 或 IPv6 地址?
java - 为什么 request.getRemoteAddr() 根据上下文返回 ipv4 或 ipv6(post 查询或 ajax 查询)
我已经使用 Spring/GWT 制作了一个使用 Flash 上传文件的 Web 应用程序。
当我使用 GWT 发送 ajax 请求并尝试获取用户 ip 地址时,我得到一个 ipv4 地址,例如:127.0.0.1
但是当我用 flash 上传文件时(以及同一个 webapp 上的发布请求),我得到一个 ipv6 地址 0:0:0:0:0:0:0:1
我使用相同的代码来获取用户 ip,即:
问题是我使用了一个使用 ip 地址的签名来确保用户可以上传文件(由于使用 flash 上传时会话丢失的错误),并且当我使用 ajax 或通过 flash 发布时,ip 地址会发生变化。
有什么问题,我怎样才能获得相同的 ip 格式?
谢谢
networking - TCP 连接基础
这是一个基本的疑问,但我想知道如果在相同的两台机器之间建立两个 TCP 连接,两个连接中的数据包是否会遵循相同的路径(相同的链接和节点)。我之所以问这个问题是因为我想测量两台机器之间 IPv4 和 IPv6 TCP 连接的带宽,并且我想确保这两个连接都遵循相同的路径。
java - 支持 IPv6 需要进行哪些更改
支持 IPv6 和 IPv4 需要对网站进行哪些更改?还在java中使用套接字服务我需要什么更改才能接受这两种类型的连接?
环境
操作系统 - Linux
网络服务器 - Tomcat 5.5
php - PHP 将 IPv6 转换为二进制(/内存)表示
我已经为 IPv4“做了”这个;
我也需要对 IPv6 执行上述操作。通读 IPv6 规范(我承认我没有阅读全部内容),我看到了一些奇怪的东西(“例外”),例如一组 0 可以压缩为双冒号:“:0000:0000”=> “::”(如果我的理解是正确的)。我还看到了如何在 IPv6 字符串中包含 IPv4 样式的字符串:0:0:0:0:0:0:127.0.0.1
让我们先说我不知道从哪里开始。
感谢 Alvaro,现在我有了inet_pton 的纯 PHP 实现:
问题是,我不太明白它在做什么。问题是,我不能只使用这样的功能,因为(一方面)我知道它以与我正在做的(或想要的)不同的格式打包 IP。
ipv6 - IPv4 地址何时用完?
多年来,我听说 IPv4 地址很快就会用完。什么时候会发生?我们什么时候才能看到仅限 IPv6 的应用程序?
c - getaddrinfo 不一致的行为
我正在使用 getaddrinfo 启动本地服务器,仅在 localhost 上接受连接:
这似乎工作正常,当 IPv6 存在时给我 IPv6 地址 ::1,而当 IPv6 不存在时给我 IPv4 地址。
除了有时在 Windows 2008 R2 上(至少这是我见过的唯一系统,但我见过两次,两次都是在客户系统上)它绑定到 127.0.0.1 而不是 IPv6!
这让我很困惑,因为如果您绑定 ::1,它将同时接受到 127.1 和 ::1 的连接,但是如果您绑定 127.1,则不接受 IPv6 连接。
c - 如果可能,如何确保服务器在 IPv6 上侦听,否则在 IPv4 上侦听?
我正在尝试编写一个侦听 IPv6 和 IPv4 连接的服务器应用程序。完成此任务的正确方法似乎是侦听 IPv6 地址,该地址也将接受 IPv4 连接。
相关的代码是:
(几乎从 Beej's Guide 复制粘贴)
问题是,至少在我的系统上,返回第一个和第二个getaddrinfo
条目- 而客户端的返回首先,根据规范。用我天真的方法,服务器选择 IPv4,客户端选择 IPv6,连接失败。AF_INET
AF_INET6
getaddrinfo
AF_INET6
我试图通过设置来解决这个问题hints.ai_family = AF_INET6
,但在 IPv6 不可用的系统上失败了。
我看到了两个明显的解决方案:
a)尝试首先请求 IPv6,如果失败则回退到 IPv4,或者
b)遍历结果getaddrinfo
,查找 IPv6,如果不存在,则选择第一个条目
,但我不喜欢要么一个太多;)我觉得应该有一种方法来说服getaddrinfo
做正确的事情,或者可能是一种不同的方法来实现我的目标。