判断IP地址是否在指定范围内的方法

比如给定一个ip段:127.0.0.1 ~ 127.0.0.255,我们想判断一个给定的ip地址是否在此段内,可以先将ip地址转换成整数,然后整数比较大小就很容易了。

例如:
127.0.0.1 = 2130706433
127.0.0.255 = 2130706687

判断:
127.0.1.253 = 2130706941
是否在此范围内,直接比较整数大小即可

将ip地址转换成整数:

public static long IP2Long(string ip)
{
  string[] ipBytes;
  double num = 0;
  if(!string.IsNullOrEmpty(ip))
  {
   ipBytes = ip.Split(‘.‘);
   for (int i = ipBytes.Length - 1; i >= 0; i--)
   {
   num += ((int.Parse(ipBytes[i]) % 256) * Math.Pow(256, (3 - i)));
   }
  }
  return (long)num;
}

判断给定ip地址是否在指定范围内:

long start = IP2Long("127.0.0.1");

long end = IP2Long("127.0.0.255");

long ipAddress = IP2Long("127.0.1.253");

bool inRange = (ipAddress >= start && ipAddress <= end);

if (inRange){

 //IP Address fits within range!

}

时间: 2024-10-26 05:36:18

判断IP地址是否在指定范围内的方法的相关文章

C#判断ip地址是否ping的通

Ping pingSender = new Ping(); PingReply reply = pingSender.Send("127.0.0.1",120);//第一个参数为ip地址,第二个参数为ping的时间 if(reply.Status == IPStatus.Success) { //ping的通 } else { //ping不通 } C#判断ip地址是否ping的通,布布扣,bubuko.com

C# 判断ip地址是否正确

最后要用一方法判断ip地址是否正确,直接用.Net现成的类,方法如下: string ipStr="192.168.222.333"; IPAddress ip; if(IPAddress.TryParse(ipStr,out ip)) { Console.WriterLine("合法IP"); } else { Console.WriterLine("非法IP"); }

java判断 ip 地址是否正确的正则表达式

java正则表达式判断 ip 地址是否正确 public class ClassWork05 { public static void main(String[] args) { System.out.println(IsIp.isIp("10.10.1.1")); } } class IsIp{ public static boolean isIp(String ip) { boolean b1 = ip.matches("([1-9]|[1-9]\\d|1\\d{2}|2

Java 判断IP地址为内网IP还是公网IP

tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0-10.255.255.255 172.16.0.0/12:172.16.0.0-172.31.255.255 192.168.0.0/16:192.168.0.0-192.168.255.255 那么,直接上代码吧: public static boolean internalIp(String ip) { byte[] addr = IPAddressUtil.textToNu

js判断ip地址,子网掩码,网关的逻辑性检查

因为要做静态地址配置的js校验,找了好多资料发现网上都是关于ip,mask的有效性检查,没有ip,submask,gateway的逻辑性判断,自己写下代码供需要的人参考. 普及下网关地址知识: 就是进行与运算1与1得1,1与0为0,0与0为0.首先把ip和子网掩码展开 10.70.64.223 00001010 .01000110.01000000.11011111 255.255.255.0 111111111.11111111.11111111.00000000 网段就是 00001010

判断 IP地址 的正则表达式

关键字:IP地址 正则表达式作者:txw1958出处:http://www.cnblogs.com/txw1958/archive/2011/10/13/ip_address_regular_expression.html IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点"."隔开.例如:某台计算机IP地址为10.11.44.100. 分析IP地址的组成特点:250-255.200-249.0-199. 这三种情况可以分开考虑

Linux系统下修改IP地址、网关、DNS的基本方法

临时修改IP地址.网关.主机名.DNS,马上生效,无需重启(重启后失效) 1.修改主机名 #hostname Slyar 2.修改IP地址(eth0为网卡名称) #ifconfig eth0 192.168.1.5 netmask 255.255.255.0 3.修改默认网关(eth0为网卡名称) #route add default gw 192.168.1.1 dev eth0 4.修改DNS #vim /etc/resolv.conf CentOS(RedHat)命令行永久修改IP地址.网

判断IP地址与掩码是否合法程序

#include <stdio.h> #include <arpa/inet.h> #include <errno.h> #include <string.h> int if_a_string_is_a_valid_ipv4_address(const char *str) { struct in_addr addr; int ret; volatile int local_errno; errno = 0; ret = inet_pton(AF_INET,

java 判断ip地址是否正确

每个ip数值为0-225 否则输出false,正确返回true 例如:输入: 000.12.12.034 121.234.12.12 23.45.12.56 00.12.123.123123.123 122.23 Hello.IP 输出为: true true true false false false import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.Scanner; class