C# 校验给定的ip地址是否合法

函数用于检测ip地址格式是否合法,包括ip的组成格式,每隔段是否不超过255等,但这个函数不能验证这个ip地址是否可以ping通。

/// <summary>
/// 验证IP地址是否合法
/// </summary>
/// <param name="ip">要验证的IP地址</param>
public static bool IsIP(string ip)
{
//如果为空,认为验证合格
if (IsNullOrEmpty(ip))
{
return true;
}
//清除要验证字符串中的空格
ip = ip.Trim();
//模式字符串
string pattern = @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$";
//验证
return RegexHelper.IsMatch(ip, pattern);
}
时间: 2024-07-31 09:11:05

C# 校验给定的ip地址是否合法的相关文章

推断给定的IP地址是否是内网IP

/** * 推断给定的IP地址是否是内网IP * * @author GaoHuanJie */ public class Test{ public boolean isInnerIP(String ipAddress){/*推断是否是内网IP*/ boolean isInnerIp = false;//默认给定IP不是内网IP long ipNum = getIpNum(ipAddress); /** * 私有IP:A类 10.0.0.0 -10.255.255.255 * B类 172.16

C# 校验Email(电子邮件)地址是否合法

用于校验给定的Email地址是否合法,只针对用于提供的Email地址的格式,不对其是否真实存在进行校验. /// <summary> /// 验证EMail是否合法 /// </summary> /// <param name="email">要验证的Email</param> public static bool IsEmail(string email) { //如果为空,认为验证不合格 if (IsNullOrEmpty(email

【翻译自mos文章】怎么正确的计算一个ip地址的subnet id?

怎么正确的计算一个ip地址的subnet id? 来源于: How to calculate the correct subnet for an interface (文档 ID 1059759.1) 适用于: Oracle Database - Enterprise Edition - Version 10.2.0.1 and later Information in this document applies to any platform. 目标: 正确的计算一个ip地址的subnet i

DHCP获取IP地址过程中捕获的报文—三级网络总结(二)

上一篇文章主要说了一下知识点中的IP地址的考点,这一篇我打算说说DHCP获取IP地址过程中捕获的报文的这个考点,都是自己的理解,有错误欢迎指正. DHCP是应用层协议,UDP是传输层协议,IP是网络层协议,以太网是链路层协议.数据在网络上传输的时候要自顶向下逐层封装的,典型的DHCP过程是这样的: 1:客户机向服务器发送DHCP_DISCOVER报文,申请IP. 2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP. 3:客户机向服务器发送DHCP_REQUEST报文,请求这个

C语言实现IP地址合法性检测和子网匹配

#include <stdio.h> #include <stdlib.h> #ifdef WIN32 #include <Winsock2.h> #else #include <fcntl.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <ar

IP地址划分类型和子网划分

在实际的网络环境中,根据网络的规模不同,网络中主机的数目不同,把IP地址分为A,B,C 3类用于不同规模的网络中,而IP地址是32位的点分十进制表示,只有IP地址无法确定其属于哪一个网络,在IP地址的32位中,用前n位来标识网络,后32-n位标识网络中的主机,一般情况下是用前8,16或者24位来标识网络地址的,给定一个ip地址,则其网络地址为ip地址与1...10...0(n个1,32-n个0)作与运算的结果.1...10...0(n个1,32-n个0)称为这个网络的子网掩码(netmask).

六、DHCP获取IP地址过程中捕获的报文

DHCP是应用层协议,UDP是传输层协议,IP是网络层协议,以太网是链路层协议.数据在网络上传输的时候要自顶向下逐层封装的,典型的DHCP过程是这样的:1:客户机向服务器发送DHCP_DISCOVER报文,申请IP.2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP.3:客户机向服务器发送DHCP_REQUEST报文,请求这个IP.4:服务器PING几次(一般是3次)这个IP,如果没得到响应的话,就说明这个IP现在空闲,可以分配给客户机,所以向客户机发送DHCP_ACK报文,

判断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[] ipByt

JS中IP地址的相关验证

/* ***************** */ /* 判断IP地址是否合法 */ var judgeIpIsLegal = function(ipAddr){ var regIps = /^(((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|[0-9])\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|[0-9]))$/; return regIps.test(ipAddr); } /* IP地址转换为二进制字符串 */ /* 例如:172.16.4