如何转换列表,例如:
94.192.0.0/14
94.0.0.0/12
93.96.0.0/16
Run Code Online (Sandbox Code Playgroud)
到:
94.192.0.0-94.195.255.255
94.0.0.0-94.15.255.255
93.96.0.0-93.96.255.255
Run Code Online (Sandbox Code Playgroud)
使用python3?
配置AWS路由表时,我想输入目标地址A.B.C.D。在路由表中,我可以选择A.B.C.D/28或 A.B.C.D/32。
其中哪一个表示A.B.C.D仅(仅此一个地址)?
我的答案:A.B.C.D/32
理由: 后缀(/28, /32)描述了地址中有多少位是固定的。对于/28,位 29 到 32 可以变化(见下图),而对于 ,/32所有 32 位都是固定的。
有没有一种方法可以使用CIDR表示法将IPv6地址与IPv6子网匹配?我正在寻找的是与此等价的IPv6: 在PHP 5中将IP匹配到CIDR掩码?
由于IPv6地址长度为128位,因此无法使用上面给出的示例,从而防止按位左移正常工作.你能想到其他任何方式吗?
编辑:在答案列表中添加了我自己的解决方案.
如果我有一个IP地址范围(CIDR表示法),我需要知道某个任意IP地址是否在该范围内 - 两者都表示为字符串 - 用C#执行此操作的最简单方法是什么?
例子:
192.168.168.100/24,要检查的IP:192.168.168.200fe80::202:b3ff:fe1e:8329/24,要检查的IP:2001:db8::我正在寻找一种有效测试一个cidr标记网络是否与另一个重叠的php算法.
基本上我有以下情况:
一系列cidr地址:
$cidrNetworks = array(
'192.168.10.0/24',
'10.10.0.30/20',
etc.
);
Run Code Online (Sandbox Code Playgroud)
我有一个方法可以将网络添加到数组中,但是当添加的网络与数组中的网络重叠时,此方法应该抛出异常.
所以即.如果添加了192.168.10.0/25,则应抛出异常.
有没有人/知道/"可以想到"一种方法来有效地测试这个?
我试图将IP地址范围转换为Java中的CIDR表示法.有人能举例说明如何实现这一目标吗?
我使用SubnetUtils将CIDR转换为IP地址范围,但我无法想出相反的方法.
例如:(使用http://ip2cidr.com/)
输入1: 5.10.64.0
输入2: 5.10.127.255
结果: 5.10.64.0/18
谢谢,Dhaval
我想列出一个CIDR范围列表,它代表我指定的CIDR范围之外的地址.
作为简化示例:
如果我的IP范围从8.8.8.8到8.8.8.10,我可以用CIDR范围8.8.8.8/31和8.8.8.10/32来表达.但是我怎么能用CIDR表示法表达这些范围的反面呢?
我是CIDR的新手,所以如果这种工具已经以流行的形式存在,请原谅我的问题.
作为一个补充说明,我想最终在R中实现这个过滤,所以如果你能用R来表达你的答案,那将是更好的但我真的最感兴趣的是如何构建算法来解决这类问题.
我需要获取子网中包含的所有IP地址,我正在尝试使用IPnetwork
例如,子网192.168.1.0/29将具有以下输出:
// Output
// 192.168.1.0
// 192.168.1.1
// 192.168.1.2
// 192.168.1.3
// 192.168.1.4
// 192.168.1.5
// 192.168.1.6
// 192.168.1.7
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
IPNetwork ipn = IPNetwork.Parse("192.168.1.0/29");
IPAddressCollection ips = IPNetwork.ListIPAddress(ipn);
foreach (IPAddress ip in ips)
{
Console.WriteLine(ip);
}
// Output
// 192.168.1.0
// 192.168.1.0
// 192.168.1.0
// 192.168.1.0
// 192.168.1.0
// 192.168.1.0
Run Code Online (Sandbox Code Playgroud)
如您所见,这不是理想的结果.我错过了什么?是否有其他工具或方法来完成这项工作?我已经设法破解了一些东西,但它并不漂亮,我不确定它是否正确枚举更大的子网.
我想做两件事:将IP地址输入转换为CIDR以下是一些示例输入:
1.1.1.1
192.168.*.* #=> 192.168.0-255.0-255
192.168.1.2-20
1.1.1-10.1-100
Run Code Online (Sandbox Code Playgroud)
检查给定的IP地址是否属于任何CIDR.这必须是一个非常快速的查询,因为它是我的Web应用程序中非常常见的查找.我想做这样的事情:
def matches?(request)
valid = @ips.select {|cidr| cidr.contains?(request.remote_ip) }
!valid.empty?
end
Run Code Online (Sandbox Code Playgroud)
我认为将IP范围转换为CIDR将使查找比我们现在所做的更快,这将IP分解为整数八位字节.然后,我们将前两组八位字节编入索引以部分匹配IP.另一个选择可能是将所有内容转换为int并以这种方式进行比较.我会用这样的东西转换成int IPAddr.new("1.1.1.1").to_i但是我需要为每个范围存储一个上限和下限IP而不是一个CIDR.
如果我忽视任何主流方法,流行宝石或回购,请告诉我.谢谢!
我们需要将来自 WAF 的 IP 地址范围列入白名单,如下所示:
199.83.128.0/21
198.143.32.0/19
149.126.72.0/21
103.28.248.0/22
45.64.64.0/22
185.11.124.0/22
192.230.64.0/18
Run Code Online (Sandbox Code Playgroud)
更多详情:
我正在使用 .net ipSecurity部分。但是还没有找到如何添加上述 ip 地址而不必添加所有 ip 地址的示例。
例如
<ipSecurity allowUnlisted="false">
<!-- this line blocks everybody, except those listed below -->
<clear/>
<add ipAddress="xx.xx.xx.xx" allowed="true"/>
</ipSecurity>
Run Code Online (Sandbox Code Playgroud)
我是子网掩码的新手。
有没有一种优雅的方法来实现这一点?
cidr ×10
ip ×5
c# ×2
ip-address ×2
ipv4 ×2
ipv6 ×2
php ×2
asp.net-mvc ×1
java ×1
networking ×1
python ×1
python-3.x ×1
r ×1
ruby ×1
security ×1
subnet ×1
web-config ×1
whitelist ×1