问题标签 [cidr]

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 投票
4 回答
11987 浏览

sql - 使用 SQL 确定子网掩码的 cidr 值

我想找到一种方法来执行 SQL 查询,该查询将计算存储在数据库中的子网掩码的 cidr(位表示)。例如,我将 255.255.255.0 或其十进制值 (4294967040) 存储在数据库中。我想做一个选择并通过查询取回 /24 表示。

我已经完成了以下操作来确定子网的最后一个 IP,所以我希望做类似的事情来确定掩码的 cidr 表示。

最好这是一个可以在 mysql、postgres、oracle 等下工作的 SQL 语句。

0 投票
3 回答
8970 浏览

c# - CIDR 子网是否有本机 .NET 类型?

编写一个类来存储/验证类似的东西很简单192.168.0.0/16,但我很好奇 .NET 中是否已经存在这种本机类型?我想它会很像IPAddress

基本上,它只需要确保您使用的是 IPv4 或 IPv6 地址,然后您指定的位数对该类型有效。

0 投票
13 回答
64024 浏览

php - 将 IP 与 PHP 5 中的 CIDR 掩码匹配?

我正在寻找快速/简单的方法来将给定的 IP4 点四 IP 与 CIDR 符号掩码匹配。

我有一堆 IP,我需要查看它们是否与一系列 IP 匹配。

例子:

会是什么样cidr_match()子?

它并不一定很简单,但快速会很好。任何仅使用内置/常用功能的东西都是一种奖励(因为我可能会让一个人在 pear 中向我展示这样做的东西,但我不能依赖 pear 或安装在我的代码所在的位置的那个包部署)。

0 投票
5 回答
23091 浏览

mysql - 有没有办法直接从 SELECT 查询中将 IP 与 IP+CIDR​​ 匹配?

就像是

SELECT COUNT(*) AS c FROM BANS WHERE typeid=6 AND (SELECT ipaddr,cidr FROM BANS) MATCH AGAINST 'this_ip';

因此,您不必先从数据库中获取所有记录,然后将它们逐个匹配。

如果 c > 0 则匹配。

禁令表:

数据库:MySQL 5

查询时已知 IP 和 IPv 类型(4 或 6)。

IP 例如 ::1 二进制格式

禁止 IP 例如 ::1/64

0 投票
28 回答
167553 浏览

python - 如何在 Python 中检查 ip 是否在网络中?

给定一个 IP 地址(比如 192.168.0.1),我如何在 Python 中检查它是否在网络中(比如 192.168.0.0/24)?

Python中有用于IP地址操作的通用工具吗?诸如主机查找,int 的 ip 地址,带有网络掩码的网络地址到 int 等的东西?希望在 2.5 的标准 Python 库中。

0 投票
4 回答
30428 浏览

c# - 如何在 C# 中将 CIDR 转换为网络和 IP 地址范围?

我一直在寻找一些 C# 代码来将 CIDR 表示法 (72.20.10.0/24) 的网络转换为 IP 地址范围,但运气不佳。stackoverlow 上有一些关于 CIDR 的线程,但似乎没有任何 C# 代码并且完全涵盖了我需要的内容。所以我决定自己做,我不希望代码依赖 System.Net 在这个版本中进行任何转换。

也许它可能对某人有帮助。

参考:

从网络位数转换为网络掩码的最佳方法是什么?

来自http://www.laffeycomputer.com/whatmask.html的“Whatmask”C 代码

用法:

该代码假定所有内容均为 32 位。

随时提交您的改进。

0 投票
8 回答
67116 浏览

python - Python 3:从 CIDR 表示法创建可能的 IP 地址列表

我接到了在 python (3.1) 中创建一个函数的任务,该函数将采用 CIDR 表示法并返回可能的 IP 地址列表。我查看了 python.org 并发现了这个: http ://docs.python.org/dev/py3k/library/ipaddr.html

但我还没有看到任何可以满足这种需求的东西......我将非常感谢任何人关心我的方式的任何帮助。提前致谢。:-)

0 投票
3 回答
930 浏览

vb6 - VB6 IP4 - 从位数计算网络掩码(长)

给定 0 到 32 的输入,表示 IP4 网络掩码中的一位数(对应于 /19 中的 CIDR 块大小),什么是

  1. 一种将其转换为四字节长网络掩码的优雅方法
  2. 一种将其转换为四字节长网络掩码的快速方法

原型:

请注意,由于 VB6 不做无符号运算,这很复杂,因此常规的数学技巧通常不起作用。如果(Number And &H80000000)为非零,则Number \ 2与 SHR 操作不同。

我想出了一些方法,但我不认为它们很优雅,而且它们可能没有那么快。

我的一个想法是战略性地使用 CopyMemory API,它非常快。我过去解决了一些有符号/无符号的 Long 问题,只需将 Long 放入一个字节(0 到 3)并根据需要处理每个部分。

由于我还在使用 inet_ntoa() 和 inet_addr() Windows API 函数,它们以反向字节顺序返回 IP 序列号,因此以反向顺序返回字节的解决方案非常棒(我已经有一个函数来翻转如果需要,字节顺序,但避免它也会很好)。

例子:

可行的解决方案很好,但我正在寻找优雅或快速的解决方案。

0 投票
3 回答
22185 浏览

python - python 3:ipaddr/netaddr 模块

我必须在这里做错事......我目前正在尝试使用内置模块验证 ip 是否在特定子网内。

我正在使用activepython:

在变更日志中有这个:

那个和其他谷歌搜索让我相信 ipaddr 是一个内置的,但是:

所以我想我会安装 netaddr 并尝试使用它,而我从 netaddr 得到的只是:

我感到相当沮丧,我不知道从这里去哪里......建议?

0 投票
11 回答
73887 浏览

java - 将 CIDR 地址转换为子网掩码和网络地址

给定一个 CIDR 地址,例如192.168.10.0/24

  • 如何确定掩码长度?( 24)
  • 如何确定掩码地址?( 255.255.255.0)
  • 如何确定网络地址?( 192.168.10.0)