标签: cidr

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

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

Python中是否有用于ip地址操作的通用工具?像主机查找,ip adddress到int,网络地址与netmask到int等等?希望在2.5的标准Python库中.

python networking ip-address cidr

88
推荐指数
11
解决办法
12万
查看次数

设置CIDR/IP以便任何人都可以从任何IP访问它?

如何设置CIDR/IP以便任何人都可以从任何地方访问它?我正在尝试从任何地方访问我的AWS RDS数据库实例,因为我的ISP没有给我一个静态IP.每次我的IP更改我都要更改安全记录.

cidr amazon-web-services

65
推荐指数
3
解决办法
5万
查看次数

在PHP 5中将IP与CIDR掩码匹配?

我正在寻找快速/简单的方法来匹配给定的IP4点分四核IP到CIDR表示法掩码.

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

例:

$ips = array('10.2.1.100', '10.2.1.101', '10.5.1.100', '1.2.3.4');

foreach ($ips as $IP) {
    if (cidr_match($IP, '10.2.0.0/16') == true) {
        print "you're in the 10.2 subnet\n"; 
    }
}
Run Code Online (Sandbox Code Playgroud)

会是什么cidr_match()模样?

它并不一定非常简单,但快速会很好.任何只使用内置/通用功能的东西都是奖励(因为我很可能会让一个人向我展示梨的东西,但是我不能依赖梨或者我的代码所在的地方安装的包部署).

php cidr

51
推荐指数
4
解决办法
5万
查看次数

Facebook使用的IP空间列表

我正在寻找Facebook使用的IP空间的权威列表.我需要这个来支持一个锁定的开发人员环境,该环境对出站连接有非常严格的限制.

今天我发现api和graph.facebook.com开始解析为69.171.224.0/19,这在我之前的过滤器中没有.我已经更新了它,但我想知道我缺少的其他IP空间允许规则.

这就是我目前所拥有的.您可以列出的任何其他IP块都很棒.感谢大家.

69.63.176.0/20
69.171.224.0/19
66.220.144.0/20
204.15.20.0/22
Run Code Online (Sandbox Code Playgroud)

facebook routes cidr facebook-graph-api

35
推荐指数
3
解决办法
16万
查看次数

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

给定CIDR地址,例如 192.168.10.0/24

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

java ip networking mask cidr

34
推荐指数
5
解决办法
6万
查看次数

如何使用CIDR表示法查看IP地址是否属于一系列IP?

这里我有一个静态参考我需要检查的范围:

private static List<string> Ip_Range = new List<string>()
{
    "12.144.86.0/23",
    "31.201.1.176/30",
    "46.36.198.101/32",
    "46.36.198.102/31",
    "46.36.198.104/31",
    "46.136.172.0/24",
    "63.65.11.0/24",
    "63.65.12.0/25",
    "63.65.12.128/26",
    "63.65.12.192/27",
    "63.65.12.224/28",
    "63.65.12.240/29",
    "63.65.12.248/30",
    "63.65.12.252/31",
    "63.65.12.254/32",
    "65.173.56.0/21",
    "67.23.241.179/32",
    "67.23.241.180/30",
    "67.23.241.184/29",
    "67.23.241.192/30",
    "67.23.241.196/31",
    "67.23.241.198/32",
    "72.32.164.56/29",
    "72.46.244.32/28",
    "74.91.16.48/29",
    "74.91.16.208/29",
    "74.91.20.48/28",
    "74.91.20.64/29",
    "74.112.134.120/29",
    "74.112.135.104/29",
    "74.205.37.16/29",
    "78.24.205.32/28",
    "98.129.27.88/29",
    "98.129.91.40/29",
    "166.114.0.0/16",
    "167.157.0.0/16",
    "174.143.165.80/29",
    "186.0.156.0/22",
    "186.2.0.0/17",
    "186.27.0.0/17",
    "190.0.248.0/21",
    "190.3.184.0/21"
};
Run Code Online (Sandbox Code Playgroud)

这是我看到它如何工作的一些伪代码:

public static bool IpIsWithinRange(string ip) //Something like 127.0.0.1 or 184.56.26.35
{
    IPAddress incomingIp = IPAddress.Parse(ip);
    foreach (var subnet in Ip_Range)
    {
        IPAddress sub = IPAddress.Parse(subnet); ?????
        if …
Run Code Online (Sandbox Code Playgroud)

c# ip cidr

23
推荐指数
3
解决办法
2万
查看次数

有没有办法直接从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则匹配.

BANS表:

id int auto incr PK
typeid TINYINT (1=hostname, 4=ipv4, 6=ipv6)
ipaddr BINARY(128)
cidr INT
host VARCHAR(255)
Run Code Online (Sandbox Code Playgroud)

DB:MySQL 5

查询时已知IP和IPv6类型(4或6).

IP例如是二进制格式的:: 1

BANNED IP例如是:: 1/64

mysql ip mask bitmask cidr

20
推荐指数
1
解决办法
2万
查看次数

从PHP获取CIDR表示法中的IP列表

是否有方法(或函数/类)从CIDR表示法获取IP地址列表?

例如,我有73.35.143.32/27 CIDR并希望以此表示法获取所有IP的列表.有什么建议?

谢谢.

php ip cidr

18
推荐指数
4
解决办法
2万
查看次数

CIDR按位操作 - 我可以更聪明一点吗?

我正在构建一个代表IPv4子网的类.我将网络地址和子网掩码存储为4字节二进制字符串,它们是在构造函数期间根据参数构建的.我希望构造函数接受的表示之一CIDR表示法.

我的按位操作有点生疏,我遇到的问题是将子网掩码的十进制整数CIDR表示转换为4字节的二进制字符串,反之亦然.我还发现我无法对字符串执行左/右移位 - 我确信之前已经成功完成了?


我已设法转换为二进制字符串以使用以下代码:

// An example input value.
$mask = 24; // 255.255.255.0

if ($mask < 0 || $mask > 32) {
  // Invalid prefix size
  throw new RangeException('Invalid CIDR prefix size');
} else if ($mask === 0) {
  // Handle 0
  $mask = "\x00\x00\x00\x00";
} else {
  // Left-pad a 4-byte string with $mask set bits
  $mask = pack('N', (0x01 << 31) >> ($mask - 1));
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种逻辑有两个原因:

  • 我不喜欢把它0视为特例
  • 我不喜欢右移然后是左移

我确信有一种方法能够以一种 …

php binary bit-manipulation cidr

18
推荐指数
2
解决办法
1833
查看次数

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

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

也许它可能对某人有所帮助.

参考文献:

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

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

用法:

uint startIP, endIP;  
Network2IpRange("72.20.10.0/24", out startIP, out endIP); 
Run Code Online (Sandbox Code Playgroud)

代码假设一切都是32位.

static void Network2IpRange(string sNetwork, out uint startIP, out uint endIP)
{           
    uint ip,        /* ip address */
        mask,       /* subnet mask */               
        broadcast,  /* Broadcast address */
        network;    /* Network address */

    int bits;               

    string[] elements = sNetwork.Split(new Char[] { '/' });         

    ip = IP2Int(elements[0]);
    bits = Convert.ToInt32(elements[1]);

    mask = ~(0xffffffff >> bits);

    network = ip & mask;
    broadcast = network + ~mask; …
Run Code Online (Sandbox Code Playgroud)

c# cidr

15
推荐指数
3
解决办法
2万
查看次数