/*****************************************************************************
* 点分十进制IP校验、转换,掩码校验
* 声明:
* 本文主要记录如何对IP、掩码进行转换、校验等相关内容,注意大小端的问题。
*
* 2016-5-5 深圳 南山平山村 曾剑锋
****************************************************************************/ 一、参考文档:
. java编程,如何检查一个给定的字符串IP是否合法?
http://www.oschina.net/question/994728_115374
. js验证IP及子网掩码的合法性有效性示例
http://www.bkjia.com/Javascript/763031.html 二、点分十进制IP转整形
static public int numericIPToInt(String numericIP) {
String [] ips = numericIP.split("\\.");
int ip = Integer.valueOf(ips[]) << |
Integer.valueOf(ips[]) << |
Integer.valueOf(ips[]) << |
Integer.valueOf(ips[]); return ip;
} static public String intToNumericIP(int ip) {
return (ip & 0xff) + "."
+ ((ip >> ) & 0xff) + "."
+ ((ip >> ) & 0xff)+ "."
+ ((ip >> ) & 0xff));
} 三、IP校验
public static boolean isIpv4(String ipAddress) {
String ip = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
Pattern pattern = Pattern.compile(ip);
Matcher matcher = pattern.matcher(ipAddress);
return matcher.matches();
} 四、netmask校验
public static boolean isNetmask(String netmask) {
String mask="^(254|252|248|240|224|192|128|0)\\.0\\.0\\.0" +
"|255\\.(254|252|248|240|224|192|128|0)\\.0\\.0" +
"|255\\.255\\.(254|252|248|240|224|192|128|0)\\.0" +
"|255\\.255\\.255\\.(254|252|248|240|224|192|128|0)$";
Pattern pattern = Pattern.compile(mask);
Matcher matcher = pattern.matcher(netmask);
return matcher.matches();
}

点分十进制IP校验、转换,掩码校验的更多相关文章

  1. 【python】点分十进制ip与数字互转

    来源:http://www.cnblogs.com/vovlie/archive/2012/10/17/2727029.html 利用lambda表达式,非常简洁 int_to_ip = lambda ...

  2. [codewars] - int32 to IPv4 二进制十进制 ip地址转换

    原题 https://www.codewars.com/kata/int32-to-ipv4/train/java Take the following IPv4 address: 128.32.10 ...

  3. 华为上机:IP地址转换

    IP地址转换 描述: IP地址的长度为32,即有2^32-1个地址.IP地址一般采用点分十进制表示法,例如"192.168.1.1".IP地址也可以直接用一个32位的整数进行表示. ...

  4. 套接字编程相关函数(1:套接字地址结构、字节序转换、IP地址转换)

    1. 套接字地址结构 1.1 IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中.下 ...

  5. Linux C++ - IP地址转换函数

    1. 函数用途:数字网络序本地序转换 适用类型:IP地址uint32_t类型.端口号uint16_t类型 #include<netinet/in.h> extern uint32_t nt ...

  6. ip(点分十进制 <==> 二进制整数)之间的转换

    linux的套接字部分比较容易混乱,在这里稍微总结一下. 地址转换函数在地址的文本表达式和它们存放在套接字地址结构中的二进制值进行转换. 地址转换函数有四个:其中inet_addr 和 inet_nt ...

  7. 关于IP数据包首部校验字段的理解

    关于IP数据包首部校验字段的理解 IP数据包格式及首部个字段:  www.2cto.com   对上表的各个数据项就不一一解释了,这里具体关注以下几个数据项: 1.4位首部长度:这里的长度指的是4By ...

  8. 汇总下几个IP计算/转换的shell小脚本-转

    原文:http://blog.chinaunix.net/uid-20788470-id-1841646.html   1. IP转换为整数> vi ip2num.sh#!/bin/bash# ...

  9. ip地址转换

    通常,我们用点分十进制字符串表示ipv4地址(192.168.1.1),用十六进制字符串表示ipv6地址(fe80::20c:29ff:fee9:4bcc). ipv4转换函数 #include &l ...

随机推荐

  1. 替代jquery

    如果不需要过多操作,不引用jquery 1.document.ready :$(function(){}) http://www.cnblogs.com/a546558309/p/3478344.ht ...

  2. POJ 2182

    #include <iostream> #define MAXN 8005 using namespace std; int _m[MAXN]; int main() { //freope ...

  3. HDU 2059 龟兔赛跑(动态规划)

    龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  4. 树莓派/RaspberryPi 内核编译

    1.获取所需源码 1)下载地址: 官方网址:https://github.com/raspberrypi 上面列出了树莓派所有的开源软件: linux:内核源码 tools:编译内核和其他源码所需的工 ...

  5. DevExpress Form那些事儿

    1:设置子窗体依附父窗体 首先将父窗体的属性中  IsMdiContainer 设置为 True   , 就是将窗体设置为 MDI窗体.子窗体和父窗体都是继承自RibbonForm的. 代码如下 : ...

  6. 安装mysql之后,存入中文出现乱码

    如图显示:安装mysql之后,存入中文出现乱码 解决方案: 找到如图的文件位置 打开进行如图的修改: 结果:

  7. C# 与C/C++相互调用

    C++调用C#的DLLhttp://www.csharpwin.com/csharpspace/11385r8940.shtml C#调用C/C++动态库必须注意的几个问题http://www.rob ...

  8. Windows SEH学习 x86

    windows 提供的异常处理机制实际上只是一个简单的框架.我们通常所用的异常处理(比如 C++ 的 throw.try.catch)都是编译器在系统提供的异常处理机制上进行加工了的增强版本.这里先抛 ...

  9. asp.net+swfupload 多图片批量上传(附源码下载)

    asp.net的文件上传都是单个文件上传方式,无法执行一次性多张图片批量上传操作,要实现多图片批量上传需要借助于flash,通过flash选取多个图片(文件),然后再通过后端服务进行上传操作. 本次教 ...

  10. c 从语言中的内存管理

    在C里,内存管理是通过专门的函数来实现.另外,为了兼容各种编程语言,操作系统提供的接口通常是 C 语言写成的函数声明(Windows 本身也由C和汇编语言写成). 1 分配内存 malloc 函数 需 ...