将ip地址转换成C段地址的UDF,最重要的是判断IP地址的正则表达式。

  1. package cn.cnnic.ops.Study;
  2.  
  3. import java.util.regex.Pattern;
  4.  
  5. import org.apache.hadoop.hive.ql.exec.UDF;
  6.  
  7. import cn.cnnic.ops.util.Constants;
  8.  
  9. /**
  10. * company: cnnic department: ops author: baoshan change client ip to C network
  11. * segment
  12. */
  13.  
  14. public class GetClientCSegment extends UDF {
  15. public static void main(String[] args) {
  16. String client = "210.72.32.1";
  17. GetClientCSegment gccs = new GetClientCSegment();
  18. System.out.println(gccs.evaluate(client));
  19. }
  20.  
  21. public String evaluate(String client) {
  22. String ipCSegment = "";
  23. Pattern pattern = Pattern.compile(
  24. "^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$");
  25. boolean flag = pattern.matcher(client).matches();
  26. String[] arr = client.split(Constants.DOT);
  27. if (flag) {
  28. ipCSegment = arr[0] + Constants.DOT_SIMPLE + arr[1] + Constants.DOT_SIMPLE + arr[2] + Constants.DOT_SIMPLE
  29. + "0";
  30. } else {
  31. ipCSegment = client;
  32. }
  33. return ipCSegment;
  34. }
  35. }

将ip地址转换成C段地址的UDF的更多相关文章

  1. [转]字符型IP地址转换成数字IP的SQL函数

    使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助.      /**//*--调用示例       sele ...

  2. IP地址转换成Long型数字的算法

    在应用程序开发中,涉及到IP地址的存储,大部分开发人员都将其存为String(或文本类型).能否将固定格式为m.n.x.y的IP地址转换成 Long型的数字呢?答案是肯定的.在数据库层面,可以直接将结 ...

  3. ip地址转换成16进制long

    <span style="font-size:18px;">public class IpUtil { /** * ip地址转换成16进制long * @param i ...

  4. c#中将IP地址转换成无符号整形数的方法与逆变换方法

    我们知道 IP地址就是给每个连接在Internet上的主机分配的一个32bit地址. 按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节.而c#中 ...

  5. python 将IP地址转换成打包后的32位格式

    python 2.7 #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter - # This program r ...

  6. ip地址转换

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

  7. python2.7_1.4_将IPV4地址转换成不同的格式

    代码如下: # -*- coding: utf-8 -*- import socket from binascii import hexlify def convert_ip4_address(): ...

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

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

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

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

随机推荐

  1. Oracle 11g 分区拆分与合并

    时间范围分区拆分create table emp (id number(6) not null,hire_date date not null)partition by range(hire_date ...

  2. 解决Linux SSH登录慢

    出现ssh登录慢一般有两个原因:DNS反向解析的问题和ssh的gssapi认证 :ssh的gssapi认证问题 GSSAPI ( Generic Security Services Applicati ...

  3. windows安装sqlite

    1.下载 sqlite的官方下载地址为http://www.sqlite.org/download.html  (sqlite-shell-win32-x86-3090200) 2.将sqlite加入 ...

  4. Spring +Mybatis 企业应用实战(脑图)

  5. 一个PHP操作大变量的例子

    By C extensions we can directly manipulate the large PHP variables, such as:GET,POST,SERVER You can ...

  6. javascript书籍推荐

    本文转自:http://blog.csdn.net/yangnihaozan/article/details/48294545 在当下,极多的程序员是通过自学来完成入门以及提升的.对于JavaScri ...

  7. HDUOJ----2063过山车

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  8. Python Socket编程初探

    python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...

  9. js访问url和cookie

    function QueryString() { var data = []; this.Read = function() { var aPairs, aTmp; var queryString = ...

  10. Android——点击对话框上按钮不关闭对话框

    有时候我没可能需要在点击按钮进行一些检测,但是并不想关闭次对话框(系统默认点击任何一个按钮则关闭对话框),处理方法如下:在点击事件下添加如下代码: try { Field field = dialog ...