Oracle中IP转Long 和java中IP转Long

java和Oracle中ip地址与数值的相互转换 项目中有个地方要用到导入某个安全系统的数据库进行分析,需要用到里面记录的ip地址,倒过来之后发现ip地址是数值型的,比如190131313 这样开始还以为是没有加“.”呢 一番研究弯路之后才知道原来ip是经过处理了,果然是安全系统,oh shit 百google度之后看到两篇文章值得借鉴 分别是 http://stephen830.iteye.com/blog/254742 java转换ip地 阅读详情
  1. Oracle中IP转long 和Long转IP
create or replace function ip2number(ip varchar2)   
return number  
is  
  ip_num_hex varchar2(80);  
begin  
  if (regexp_like(ip, '^(/d{1,3})/.(/d{1,3})/.(/d{1,3})/.(/d{1,3})$')) then  
     ip_num_hex := lpad(trim(to_char(regexp_replace(ip, '^(/d{1,3})/.(/d{1,3})/.(/d{1,3})/.(/d{1,3})$', '/1'), 'XX')),2,'0') ||  
                   lpad(trim(to_char(regexp_replace(ip, '^(/d{1,3})/.(/d{1,3})/.(/d{1,3})/.(/d{1,3})$', '/2'), 'XX')),2,'0') ||  
                   lpad(trim(to_char(regexp_replace(ip, '^(/d{1,3})/.(/d{1,3})/.(/d{1,3})/.(/d{1,3})$', '/3'), 'XX')),2,'0') ||  
                   lpad(trim(to_char(regexp_replace(ip, '^(/d{1,3})/.(/d{1,3})/.(/d{1,3})/.(/d{1,3})$', '/4'), 'XX')),2,'0');  

     return to_number(ip_num_hex, 'XXXXXXXX');  
  else  
     return -1;  
  end if;  
exception  
when others then  
  return -99999999999;  
end;  

select ip2number('169.254.55.6') from dual;  

IP2NUMBER('169.254.55.6')  
-------------------------  
               2852009734  

create or replace function number2ip(num number)  
return varchar2 is  
  ip_num_hex varchar2(8);  
begin  
  ip_num_hex := lpad(trim(to_char(num, 'XXXXXXXX')), 8, '0');  
  return to_number(substr(ip_num_hex, 1, 2), 'XX') || '.' ||  
         to_number(substr(ip_num_hex, 3, 2), 'XX') || '.' ||  
         to_number(substr(ip_num_hex, 5, 2), 'XX') || '.' ||  
         to_number(substr(ip_num_hex, 7, 2), 'XX');  
exception  
when others then  
  dbms_output.put_line(sqlerrm);  
  return null;  
end;  

select number2ip(2852009734) from dual;  

NUMBER2IP(2852009734)                                                             
--------------------------------------------------------------------------------  
169.254.55.6    

2.java中实现方式

/** 
     * ip地址转成整数. 
     * @param ip 
     * @return 
     */  
    public static long ip2long(String ip) {  
        String[] ips = ip.split("[.]");  
        long num =  16777216L*Long.parseLong(ips[0]) + 65536L*Long.parseLong(ips[1]) + 256*Long.parseLong(ips[2]) + Long.parseLong(ips[3]);  
        return num;  
    }  

    /** 
     * 整数转成ip地址. 
     * @param ipLong 
     * @return 
     */  
    public static String long2ip(long ipLong) {  
        //long ipLong = 1037591503;  
        long mask[] = {0x000000FF,0x0000FF00,0x00FF0000,0xFF000000};  
        long num = 0;  
        StringBuffer ipInfo = new StringBuffer();  
        for(int i=0;i<4;i++){  
            num = (ipLong & mask[i])>>(i*8);  
            if(i>0) ipInfo.insert(0,".");  
            ipInfo.insert(0,Long.toString(num,10));  
        }  
        return ipInfo.toString();  
    }  
ipv6的ip地址转biginteger数字 ipv6的ip地址转biginteger数字 直接能够测试 立即下载

相关推荐

ipv4和ipv6字符串转换成数字

ipv4或ipv6字符串形式的地址转换为BigInteger数字。

IP地址(IPV6)与long数组之间的转换

IP地址(IPV6)与long数组之间的转换 一、前言 IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。IPv6的地址长度为128位,它有3种表示方法,分别是冒分十六进制表示法、0位压缩表示法、内嵌IPv4地址表示法。 二、...

王小二(海阔天空) 7912

别再到处找资源了!WinCC 7.5 SP2官方下载与Windows 10保姆级安装避坑指南

本文提供了WinCC 7.5 SP2在Windows 10上的官方下载与安装全流程指南,重点解决了资源获取难、系统兼容性问题及分卷压缩处理等常见痛点。通过详细的步骤和实用技巧,帮助用户顺利完成安装并优化配置,适用于工控领域的学习者和从业者。

weixin_32924297的博客 480

Java实现 IPv6 与 long 相互转换

缘起 前些天写了一篇《ip 地址与 int 整数的相互转换》,公众号 Java面试那些事 转发了这篇文章,有读者评论问到 IPv6 的转换方法,于是抽时间也自己实现了一下。 IPv6 定义 IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙...

dadiyang的博客 7031

Delta并联机械手-Codesys实现以及正解逆解研究

由于Codesys的Robotics模块有Delta并联机械手的运动模型,因此借助Codesys的机械手运动模型,研究自己的正解逆解算法。

weixin_42386991的博客 5566

mysql9.0windows安装

将这里的位置修改为你刚刚创建并复制data目录的地址即可,win11的系统使用vscode修改之后,会让你确认开启更高权限以进行保存,比较方便,window10不需要确认,修改后可以直接保存。:在修改之前,最好将下图文件进行备份,将原始的文件保存好一份,以防更改了配置之后,导致mysql服务报错,无法启动,备份好的话直接将有问题的配置文件给替换就可以,无需重新安装一次mySql。双击下载的msi文件进行安装。安装有问题的,可以直接进行卸载,新本的mySql会将注册表中的数据自动进行清除,还是很方便的。

m0_74824123的博客 6447

Java IPv6 转 long 数组的实现

IP6是128位的长度,一个long是64位的长度,2个long正好够一个IP6的长度位数。 代码如下: /** * 将 IPv6 地址转为 long 数组,只支持冒分十六进制表示法 */ public static long[] ip2Longs(String ipString) { if (ipString == null || ipS...

请叫我大师兄 1336

(10)Proteus 8.9上的STM32仿真系列(HAL)---freertos

实验设计:通过cubemxide生成freertos工程,然后创建一个 pc13 led灯间隔200ms闪烁的任务。非常遗憾的是proteus8.9仿真失败,实物上没有问题,但还是把流程过一遍。 一、原理图 实物是淘宝上stm32f103 c8t6的核心板,proteus上没有这个芯片,这里图上大概表示一下,用的是核心板自带的pc13引脚的led灯。 二、cubemxide配置 1.RCC如之前工程一样配置 2、配置SYS timebase Source不要使用systick,自己选择一个定时器,我这

qq_35442550的博客 7344

sscanf int 取地址_面试题:我有一批IPv6地址,你帮我想个办法来存储?

前语:微信改版后,大量读者留言说,找不到我们的公众号,在此建议大家“置顶”本公众号。如文章写得好,望大家阅读后在右下边“在看”处点个赞,以示鼓励!本文由群里的绪扬同学投稿,在此,也欢迎更多的同学来投稿。之前写了一篇《面试题:请用代码实现ip地址与int之间互换?》,有读者评论问到 IPv6 的转换方法,于是抽时间也自己实现了一下。面试官:我有一批IPv6地址,你帮我想个办法来存储?我:啊...

weixin_39727934的博客 340

VHDL按键消抖(状态机版本)

检测下降沿:设置一个和,分别代表之前的之前和之前的信号状态,若两个信号key_in_d2=1,key_in_d1=0,他俩的not key_in_d2 and key_in_d1为1,则说明下降沿产生,把它设置为标志位key_flag。延时计数:50MHz的板子每次计数需要20ns,而抖动时间大约为5-10ms。所以取7ms,作为延时时间。可以看见当检测到下降沿时,开始计数计数计满再次检测,若为低电平则为按下按键,否则为抖动。通过检测下降沿来临,延时计数再次检测,如果为低电平则为按键按下。

qq_69639216的博客 1084

多模态论文笔记——BLIP

本文详细介绍这几年AIGC火爆的隐藏功臣,多模态模型:BLIP。

haopinglianlian的博客 2454

oracle转成整型_ip字符串与整型相互转换的函数

ip字符串与整型相互转换都是用编程语言实现的,下面我试着在数据库中实现这样的功能.1.字符串ip转换成整型表示CREATE OR REPLACE Function Ip_Str2long(Strip In String) Return Integer AsIp1 Varchar2(10);Ip2 Varchar2(10);Ip3 Varchar2(10);Ip4 Varchar2(10);Temp...

weixin_42495661的博客 500

Python爬虫实战:逆向工程与异步处理攻克Pinterest无限滚动瀑布流

我们将从零开始,逐步分析其数据接口,构建一个功能完整的爬虫,并深入探讨反爬虫策略的应对、性能优化以及数据存储等高级主题。: 在实际爬取中,你需要先访问一次Pinterest主页,获取初始的Cookie和CSRF Token,然后再发起API请求。: Python爬虫,Pinterest,无限滚动,瀑布流,异步IO,httpx,逆向工程,API接口,动态内容,反爬虫。你会很快发现一些关键的请求模式。:页面初始加载有限内容,随着用户滚动,新的图片块通过AJAX动态加载,实现“永无止境”的浏览。

2201_76125261的博客 551

oracle中ip地址转换,java和Oracle中ip地址与数值的相互转换

项目中有个地方要用到导入某个安全系统的数据库进行分析,需要用到里面记录的ip地址,倒过来之后发现ip地址是数值型的,比如190131313 这样开始还以为是没有加“.”呢 一番研究弯路之后才知道原来ip是经过处理了,果然是安全系统,oh shit百google度之后看到两篇文章值得借鉴 分别是oracle中的转换create or replace function ip2number(ip var...

weixin_35120666的博客 362

上下双相机定位贴合(原理到应用,halcon源码详解)

上下双相机定位贴合(原理到应用,halcon源码详解) 一、简介(类型与之前的文章)看你们理解那个文章快 主要讲解上下双相机定位贴合的原理和实现过程,包括各种标定、组合使用及具体的halcon源码实现,适用于的X、Y、Z三轴加一旋转轴系统,如模组组成的多轴系统、Scara四轴机器、六轴机器人(在运行过程中保证几个自由度不动,运行即可) 二、标定介绍 这一小节总结了通用的相机和轴的相对位置模型,并对其标定进行详细讲解 本系统仅使用了九点标定,精度可做到0.05mm 九点标定作用: A、本质就是仿射变换,一个坐

苏州程序大白的博客 9975

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

linux 进制ip,ip与16进制互转,ip16进制

ip与16进制互转,ip16进制piwik取ip:ip与16进制互转装了一个piwik做站点分析,类似自建的站长统计。想提取访客ip做一些应用,发现不是直接存的ip。1、存储1.1 ip在数据库中以16进制存储网络地址: 192.168.33.123每一个值最大不会越过255,也就是十六进制的FF,两个Byte刚好表示的最大值是255,这样子,就可以用一个32位的整形来保存这个地址192 168 ...

weixin_30746795的博客 1439

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ip与16进制互转

piwik取ip:ip与16进制互转1、存储1.1 ip在数据库中以16进制存储网络地址: 192.168.33.123 每一个值最大不会越过255,也就是十六进制的FF,两个Byte刚好表示的最大值是255, 这样子,就可以用一个32位的整形来保存这个地址 192 168 33 123 1100 0000 1010 1000 0010 0001 0111 1011 把这些二进制合在一起

星星点灯灯 4909

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Oracle11gR2限制指定IP访问

Oracle11gR2限制指定IP访问

yuanjinshenglife的专栏 1187

java 连接oracle方法_Java连接Oracle方法详解 [转]

Java连接Oracle方法详解导入驱动包首先我们得导入Oracle的驱动包,在Oracle安装目录下可以找到,导入它。具体位置是:app\计算机用户名\product\11.2.0\dbhome_1\jdbc\lib可能有的人不太一样,但是大致都差不多,像我就没有dbhome_1这个文件夹。我是直接进入的jdbc。如下图,选择一个将它拖入到java项目中,选择copy即可然后右键点击它,单击bu...

weixin_35826493的博客 2561

Oracle11g限制指定IP访问

Oracle11g限制指定的IP才能连接

jinshengyuanok的博客 1583

ORACLE 限制特定IP访问数据库

(1)在9i中真正起作用的是sqlnet.ora文件,我们修改sqlnet.ora其实是最好最快的方法。 在sqlnet.ora中增加如下部分 ----------------------------- #### 来自 protocol.ora 的属性 #### tcp.validnode_checking=yes #允许访问的IP tcp.invited_nodes=(ip1,ip2……) #禁

4215

Java获取应用的的IP地址和启动端口

一、说明:Weblogic亲测可用 Tomcat未测。 import javax.management.MBeanServer; import javax.management.ObjectName; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.http.Http...

小菜鸟的HelloWorld 5204

java和oracle_Oracle和Java生态系统

java和oracle 在经历了无可否认的艰难开端之后,包括Doug Lea(他仍然活跃在OpenJDK中)和Apache软件基金会的JCP都高调辞职,Oracle做出了巨大的努力,以重新参与更广泛的Java生态系统这一主题。它在最近的JavaOne会议上谈到了这一点。 该公司正在努力与Java用户组负责人和Java倡导者进行互动,OpenJDK项目的成员正在不断增加,并且该公司正在努力改革Ja...

cunfu6353的博客 460

改了ip登不进oracle,oracle数据库只能用127.0.0.1和localhost登录,用ip无法登陆,提...

oracle数据库只能用127.0.0.1和localhost登录,用ip无法登陆,提oracle数据库只能用127.0.0.1和localhost登录,用ip无法登陆,提示ora12541监听错误解决办法这些修改都在oracle安装完成后的服务端文件中修改,客户端里面的监听文件默认是没有的,也不需要配置oracle服务端,客户端安装完成后,服务端监听文件E:\app\Administrator\...

weixin_39757265的博客 1252

Oracle的SSL设置

Oracle的SSL基于Java的两种实现方式:Oracle Wallet和Java keyStore记录

weixin_37813118的博客 847

oracle10如何修改ip,OracleAS 10g 修改IP问题处理

If you need to assign a new IP address to the server(s) hosting OracleAS (for example, when moving the server(s) to another network segment), there are a few things to keep in mind:* Read the Oracle A...

weixin_39589923的博客 175
上一篇: java webservices 接口示例和demo下载地址
下一篇: Spring Boot 搭建应用实现登陆实例,页面使用bootstrap
梦想涨价了
博客等级 码龄15年 88粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值