点分十进制IP校验、转换,掩码校验
/*****************************************************************************
* 点分十进制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校验、转换,掩码校验的更多相关文章
- 【python】点分十进制ip与数字互转
来源:http://www.cnblogs.com/vovlie/archive/2012/10/17/2727029.html 利用lambda表达式,非常简洁 int_to_ip = lambda ...
- [codewars] - int32 to IPv4 二进制十进制 ip地址转换
原题 https://www.codewars.com/kata/int32-to-ipv4/train/java Take the following IPv4 address: 128.32.10 ...
- 华为上机:IP地址转换
IP地址转换 描述: IP地址的长度为32,即有2^32-1个地址.IP地址一般采用点分十进制表示法,例如"192.168.1.1".IP地址也可以直接用一个32位的整数进行表示. ...
- 套接字编程相关函数(1:套接字地址结构、字节序转换、IP地址转换)
1. 套接字地址结构 1.1 IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中.下 ...
- Linux C++ - IP地址转换函数
1. 函数用途:数字网络序本地序转换 适用类型:IP地址uint32_t类型.端口号uint16_t类型 #include<netinet/in.h> extern uint32_t nt ...
- ip(点分十进制 <==> 二进制整数)之间的转换
linux的套接字部分比较容易混乱,在这里稍微总结一下. 地址转换函数在地址的文本表达式和它们存放在套接字地址结构中的二进制值进行转换. 地址转换函数有四个:其中inet_addr 和 inet_nt ...
- 关于IP数据包首部校验字段的理解
关于IP数据包首部校验字段的理解 IP数据包格式及首部个字段: www.2cto.com 对上表的各个数据项就不一一解释了,这里具体关注以下几个数据项: 1.4位首部长度:这里的长度指的是4By ...
- 汇总下几个IP计算/转换的shell小脚本-转
原文:http://blog.chinaunix.net/uid-20788470-id-1841646.html 1. IP转换为整数> vi ip2num.sh#!/bin/bash# ...
- ip地址转换
通常,我们用点分十进制字符串表示ipv4地址(192.168.1.1),用十六进制字符串表示ipv6地址(fe80::20c:29ff:fee9:4bcc). ipv4转换函数 #include &l ...
随机推荐
- Jquery---用jQuery实现的智能隐藏、滑动效果的返回顶部代码
<script src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.min.js"></script& ...
- ios下划线变量:为什么变量前要加下划线才有用?
先看一段代码. 复制代码 appdelegate.h @property (weak) IBOutlet NSMatrix *StockType; @property (weak) IBOutle ...
- node中的模块
模块 编写稍大一点的程序时一般都会将代码模块化.在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名. 在编写每个模块时,都有require.expor ...
- converntion
One convention that we have is to use the names of fruits and vegetables for variables(only in small ...
- Sold out
When will the writer see the play? 'The play may begin at any moment,'I said. 'It may have begun alr ...
- 继电器Relay:ZZR08
继电器常识: 继电器有三个接线柱:常开(NO),常闭(NC),接地(C) 如果连接的时间长,偶尔需要断电, 那么接NC 和 C, 这样继电器set on 时为断电.除此之外,继电器还可以控制按键,以及 ...
- 使用HTML5实现刮刮卡效果
你玩过刮刮卡么?一不小心可以中奖的那种.今天我给大家分享一个基于HTML5技术实现的刮刮卡效果,在PC上只需按住鼠标,在手机上你只需按住指头,轻轻刮去图层就可以模拟真实的刮奖效果. 我们利用HTML5 ...
- UML元素分析
- 一个简单的以User权限启动外部应用程序(用NetUserAdd函数和USER_INFO_1结构体动态添加用户,然后用CreateProcessWithLogonW启动程序)
版权声明:本文为博主原创文章,未经博主允许不得转载. BOOL ExecuteAsUser(LPCWSTR lpszUserName, LPCWSTR lpszPassword, LPCWSTR lp ...
- CentOS目录树详细解释
[sdm_download id=”292″ fancy=”1″] /boot 该目录默认下存放的是Linux的启动文件和内核. initramfs-* 系统启动时的模块供应的主要来源 启动系统所需加 ...