问题标签 [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.

0 投票
1 回答
484 浏览

java - 铸造原语与按字节方式修剪它

我想就我的算法的一部分征求意见/建议。

对比

基本上我想知道转换是否存在性能差异,或者使用更大的 ByteBuffer 是否更好。

感谢和问候,

马立克

0 投票
2 回答
2013 浏览

bind - 如何在特定接口上打开套接字并接收 IPv4 和 IPv6 流量

使用 IPv4,我可以 bind() 到特定地址以选择将用于接收数据包的接口(在某些情况下,也可以发送,但这不是重点)。

在双栈 IPv6/IPV4 机器上我有这个问题:我可以创建一个 6 个套接字并使用它来接收 4 个流量,但是如果我想绑定到特定接口,我必须选择一个 IP 地址来绑定。

如果我绑定到 IPv6 地址,我将过滤掉所有 IPv4 流量,反之亦然。

如何从特定接口接收 IPv4 和 IPv6 流量?

0 投票
1 回答
537 浏览

java - 如何确定小程序是否通过 IPv6 加载

我有一个小程序连接回在同一主机上运行的服务。托管小程序的网络服务器同时监听 IPv4 和 IPv6,小程序想要连接的服务也是如此。

问题是,从小程序中的 with 中,我只能得到页面 URL 或代码库 URL。从 URL 我无法检测浏览器是否将其解析为 IPv4 或 IPv6,因此当通过 IPv6 加载小程序时,我使用 URL 告诉小程序在哪个服务器上查找服务失败沙箱规则,因为它默认解析为 IPv4 地址。

想到的唯一解决方案是签署小程序,以便它可以请求连接到任意服务器,但我希望有一个更简单的解决方案(不涉及购买证书或将我的自定义 CA 添加到所有系统访问的信任库网站)。

任何人都有更好的解决方案。

0 投票
4 回答
2944 浏览

.net - 是否有用于 ipv4 和 ipv6 地址的标准 .NET 解码器?

我想编写一个相当简单的客户端-服务器网络应用程序。我只使用纯 IPv4 网络,但如果我的代码能够适应未来,那就太好了。我可能会使用 TcpListener/TcpClient,因为对 WCF 的初步调查显示它的设置过于复杂且难以理解。

对于客户端,.NET 是否提供了一种工具来自动解码包含 IPv4 或 IPv6 地址(其中 IPv4 地址包括端口号)的字符串?如果它可以解析域名,则可以加分。

对于服务器端,我听说 IPv6 不使用端口号,那么侦听端口的等效项是什么,是否有一种标准方法可以将 IPv4 端口号字符串与 IPv6 等效项区分开来?没关系,IPv6 服务与 IPv4 服务一样具有 16 位端口号。

0 投票
10 回答
54180 浏览

python - 仅使用 proc 获取本地网络接口地址?

如何仅使用proc获取所有网络接口的(IPv4)地址?经过一些广泛的调查,我发现了以下内容:

  1. ifconfig使用SIOCGIFADDR,这需要打开套接字并提前了解所有接口名称。它也没有记录在 Linux 的任何手册页中。
  2. proc包含/proc/net/dev,但这是一个接口统计信息列表。
  3. proccontains /proc/net/if_inet6,这正是我需要的,但对于 IPv6。
  4. 通常,接口很容易在 中找到proc,但很少使用实际地址,除非是某些连接的明确部分。
  5. 有一个名为 的系统调用getifaddrs,这是您希望在 Windows 中看到的非常“神奇”的功能。它也在 BSD 上实现。然而,它不是非常面向文本的,这使得它很难在非 C 语言中使用。
0 投票
2 回答
21629 浏览

linux - 获取接收到的UDP数据包的目的地址

收到 UDP 数据包后,我需要用他用来发送我要回复的数据包的地址来回复发件人。

recvfrom调用让我获得了发送者的地址,但我如何获得接收到的数据包的目标地址,该地址应该与本地主机接口之一的地址匹配?

0 投票
43 回答
345480 浏览

regex - 使用正则表达式验证 IPv4 地址

我一直在尝试为 IPv4 验证获取有效的正则表达式,但运气不佳。似乎在某一时刻我已经有了它(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4},但它产生了一些奇怪的结果:

我进行了搜索以查看是否已经提出并回答了这个问题,但其他答案似乎只是显示了如何确定 4 组 1-3 数字,或者对我不起作用。

0 投票
2 回答
6384 浏览

python - Creating a IPv4 packet header in python

For my larger project i need to start with creating a IPv4 network packet ( for simulation )

for the same I need to write a function that creates a header out of the passed data which has the source ip , dest ip and all the necessary fields

For this I need you to guide me in the right direction.

Firstly I need to store the IP in 32 bits so for that if I have a string "192.168.2.1" what is the most efficient way to convert it into bytes and that too a size of 32 ??

Also if I create first a normal class with stuff like version = 4 and sourceip and dest ip then is there a way to convert it directly into a byte array with the position of objects just like the following header IPHeader

Please tell how should i proceed....

0 投票
2 回答
1017 浏览

networking - cidr 表示法的子网划分

我只是在 CIDR notaion 中对网络地址进行子网划分有问题,有人可以为我解释一下吗?例如我该如何解决这个问题:

如果网络地址 197.23.37.128/25 被划分为 4 个子网,请以 CIDR 表示法给出子网地址(您可以同时使用第一个和最后一个子网)

任何帮助,将不胜感激

0 投票
1 回答
777 浏览

python - 从 Python 原始套接字接收到的数据包中交换了两个字节

我的 Python 程序正在从原始套接字接收 ICMP 目标不可达消息。使用以下代码创建套接字:

ICMP 目标不可达消息包括原始数据包的一部分的副本。我遇到的问题是嵌入式 IPv4 标头中的 2 字节总长度字段在从套接字接收时交换了它的字节。因此,我的程序中的校验和检查失败。使用以下代码接收数据包:

当我注意到校验和测试失败时,我用 tcpdump 检查了数据包。这是一个例子:

然后我从我的 Python 代码中打印出数据包。这是来自 tcpdump 示例的相同数据包:

嵌入标头的总长度字段是第 2 行的最后两个字节。0054 来自 tcpdump 和 5400 来自我的程序。外部 IP 标头的总长度字段也是错误的(5c00 与 tcpdump 中的 0070)。

我在跑步...

达尔文上的 Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) [GCC 4.2.1 (Apple Inc. build 5646)]

来自 tcpdump 的 ICMP 目标不可达数据包中的校验和字段是正确的。它的值为 fcfe。这是没有输出 IP 标头的数据包。

让我感到困惑的是,只有总长度字段针对网络字节顺序进行了更正。其他多字节字段没有改变,打印出来的和我的 Python 程序一样。例如,总长度后面的两个字节组成了标识字段,在 tcpdump 和我的打印输出中都具有 c2ea 的值。为了检查校验和,我如何确定应该交换哪些字段?