`
123003473
  • 浏览: 1064583 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ip地址与数字(长整数)之间的转换

    博客分类:
  • java
 
阅读更多
在分析网站的客户来源经常会要求根据客户的ip地址去判断客户国家位置或者城市位置。当然要做到这一步,你要有一个详细的ip地址库。 

ip地址库中一般是通过ip地址转换来的数字(长整数)来划分国家或者城市。ip地址库数据库的一般格式为: 

... 
startIpLongNumber   endIpLongNumber CountryName CountryCode CityName 
... 

而在应用中需要将客户的ip地址字符串转成一个长整数,然后才能到地址库中去查找。 

下面就给出ip->long , long->ip的转换方法。

 

/**  

     * 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();   

    }  

通过上面这2个方法,就可以很方便的将一个ip地址字符串折算为一个long数字;或者将一个long数字还原成一个ip地址字符串。 


【转载地址】http://blog.csdn.net/wangpeijiang/article/details/5444305
分享到:
评论

相关推荐

    易语言转换IP到长整数

    本文将详细探讨易语言中如何将IP地址转换为长整数,以及这个过程中的关键知识点。 易语言是一种中国本土开发的、面向对象的、中文编程语言,它的设计目标是降低编程的难度,让编程变得更加直观易懂。在易语言中处理...

    易语言转换IP到长整数源码

    通过学习和理解这段源码,不仅可以掌握IP与长整数之间的转换,还能加深对易语言编程的理解,提高编程技能。 在阅读和分析"content.txt"文件时,你可能会看到如何定义函数,如何处理字符串,以及如何进行数学运算的...

    IP地址转化为长整型long

    这个过程涉及到IPv4地址的二进制表示和整数转换。本文将详细讲解如何实现这一转化,并通过一个简单的源码示例来说明。 首先,让我们理解IP地址的结构。IPv4地址由32位组成,分为4个8位段,每个段用十进制表示,之间...

    JS中IP地址与整数相互转换的实现代码

    以下提供的两种方法详细介绍了如何在JavaScript中实现IP地址与整数之间的转换。 首先,我们来看第一个实现,即`ipToNumber`函数和`numberToIp`函数: 1. `ipToNumber`函数: - 这个函数接收一个IP地址作为参数,...

    ip转为十进制整数

    将十进制整数转换回IP地址的过程则需要逆向执行上述操作。具体步骤包括: 1. **分离各个位**:将整数按照24位、16位、8位和0位的规则分割,并提取出相应的部分。 2. **转换为十进制字符串**:将分割后的各个部分...

    PHP实现IP–数字互相转换

    本文将深入探讨如何使用PHP实现IP地址与数字(通常称为整型或长整型)之间的相互转换,同时参考提供的博客链接:[链接已省略]。 首先,让我们了解IP地址和数字表示的基础知识。IP地址是一个32位的二进制数,通常以...

    易语言转换IP到长整数源码-易语言

    在IT领域,尤其是在编程实践中,将IP地址转换为长整数是一种常见的操作,尤其是在处理网络数据或进行IP相关的计算时。易语言,一种简洁而直观的中文编程语言,提供了这样的功能。本文将深入探讨易语言如何实现IP到长...

    python如何判断IP地址合法性

    总结来说,Python中判断IP地址合法性的方法主要是通过字符串处理和整数转换,确保每个部分的长度、内容和数值都在有效范围内。这个过程对于网络编程和数据验证是非常重要的,确保了数据的准确性。希望这个详细的解释...

    IP地址的合法性及子网判断C++代码

    一般而言,这涉及到将IP地址转换为二进制形式,然后应用子网掩码,最后比较结果是否与子网的网络部分匹配。 ### 总结 通过分析给定的C++代码片段,我们了解了如何在C++中实现IP地址和子网掩码的合法性验证,以及...

    判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网。

    1. **获取IP地址与子网的十进制形式**:首先将输入的字符串转换为十进制形式的数组。 2. **计算子网掩码**:根据输入的`mask`值计算出对应的子网掩码。具体做法是创建一个长度为4的数组,用于存储每个八位段的掩码值...

    用4个字节存放IP地址,并且读出来的源码

    - 字符串与整数之间的转换:利用`sprintf`函数,可以将多个整数值拼接成一个字符串。 3. **内存管理**:使用`malloc`动态分配内存,并确保使用完毕后调用`free`释放内存,避免内存泄漏。 4. **SNMP协议**:简单...

    ipv4和ipv6字符串转换成数字

    根据给定的信息,本文将详细解释如何将IPv4与IPv6地址从字符串形式转换为`BigInteger`数字形式,以及反向操作的过程。 ### IPv4与IPv6简介 #### IPv4 IPv4(Internet Protocol Version 4)是互联网协议的第四版,...

    javascript经典特效---IP地址的显示(说明).rar

    在JavaScript编程领域中,IP地址的显示是一种常见的需求,特别是在网络应用或者数据分析的场景下。这个"javascript经典特效---IP地址的显示(说明).rar"压缩包文件可能包含了一个详细的示例或教程,用于教导如何在...

    Java进制转换实现

    例如,在网络编程中,IP地址通常以点分十进制形式表示,但在底层实际上是用32位二进制表示的;又如,计算机内存中的数据是以二进制形式存储的,而我们在程序中读取时可能需要将其转换为易于理解的十进制或十六进制...

    检测IP地址的合法性

    1. **点的个数**:一个合法的IP地址应包含3个点,因为有4个十进制数,每个数之间用一个点隔开。因此,我们可以先检查字符串中"."的出现次数,确保其等于3。 2. **每个字段的值**:每个十进制数(字节)的值必须在0...

    易语言简单IP加密还原源码

    - **替换法**:通过预定义的字符映射表或数学公式,将IP地址中的每个数字进行转换,例如将每个数字加上一个特定的值,然后对256取模,从而达到加密的目的。 - **哈希函数**:虽然哈希函数通常用于验证数据完整性,但...

    十六进制时间转化器和IP转化器

    在IT领域,尤其是在数据处理和网络通信中,十六进制(Hexadecimal)和IP地址的转换是常见的操作。本文将详细讲解"十六进制时间转化器和IP转化器"的相关知识点,以及它在实际工作中的应用。 首先,我们来探讨十六...

    IP处理函数inet_aton()和inet_ntoa()使用说明

    总之,`inet_aton()`和`inet_ntoa()`是处理IP地址与整数之间转换的便捷工具,特别是在数据库操作中,它们能提高效率并减少潜在的错误。正确理解和使用这两个函数对于处理网络数据和进行IP相关的计算至关重要。

    易语言IP地理位置查询模块

    6. **ip2long** 和 **long2ip**:这两个函数是IP地址与长整型数值之间的转换工具。`ip2long`将IP地址转换为一个长整型数值,方便在网络传输和计算中使用;而`long2ip`则将这种数值形式的IP地址还原为人类可读的点分...

    ip2long和long2ip的学习程序

    在IT行业中,网络编程是不可或缺的一部分,而IP地址与数字之间的转换经常出现在各种网络操作中。`ip2long`和`long2ip`是两个在PHP中常用的函数,用于将IPv4地址转换为整型数字(长整型)以及将整型数字还原为IPv4...

Global site tag (gtag.js) - Google Analytics