1、ip地址转成整数

原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成整数。

举例:一个ip地址为10.0.3.193

每段数字             相对应的二进制数

10                   00001010

0                    00000000

3                    00000011

193                  11000001

组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。

用乘法表示:167773121=10*(256*256*256)+0*(256*256)+3*256+193,其中256=2**8。

我用到了位移操作,因为它就是操作的二进制数,使用位移操作很方面、直观。按位操作符操作的是整数的二进制数。

[python] view

plain copy

#将字符串形式的ip地址转成整数类型。

def ipToLong(ip_str):

#print map(int,ip_str.split('.'))

ip_long = 0

for index,value in enumerate(reversed([int(x) for x in ip_str.split('.')])):

ip_long += value<

return ip_long

2、ip地址的整数类型转成ip地址

原理:先把这个长整数转换成一个32位的二进制数。从左到右,每8位进行一下分割,就得到4段8位的二进制数,把这些二进制数转换成整数然后加上"."就是这个ip地址了。

举例:167773121

二进制表示形式为:00001010 00000000 00000011 11000001

分割成四段:00001010,00001010,00000011,11000001,分别转换为整数后加上“.”就得到了10.0.3.193。

为了得到每段的整数,我们可以采用位移操作。如,为了得到00001010的整数表示,我们先向右无符号位移24位,只剩下前八位,转成整数即可,剩余的三个也是这样的原理。代码如下:

[python] view

plain copy

#将ip的整数类型转成ip字符串类型

def longToIp(ip_long):

ip_list = []

i_1 = ip_long>>24

i_2 = (ip_long & 0X00FFFFFF)>>16

i_3 = (ip_long & 0X0000FFFF)>>8

i_4 = (ip_long & 0X000000FF)

ip_list.append(i_1)

ip_list.append(i_2)

ip_list.append(i_3)

ip_list.append(i_4)

ip_str = r'.'.join(map(str,ip_list))

return ip_str

java ip地址转数字_ip地址与整数相互转换相关推荐

  1. 计算机ip地址错误,网络ip地址怎么修复_ip地址错误的修复步骤-win7之家

    最近有不少用户反映说遇到了"IP地址错误,网络无法连接"的情况,通常只要将自动获取ip地址设置为手动获取方式就可以了,还不行的话可以使用腾讯电脑管家来对网络异常进行修复,接下来给大 ...

  2. Java判断字符串的数字类型(小数、整数)

    java判断数字类型是否为小数,可以采用正则表达式的方式来判断,以下是使用正则表达式来判断数字类型是否为小数的代码:public void checkNumber(String str) {if(nu ...

  3. java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例

    最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...

  4. C# IP地址与数字之间的互转

    using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Te ...

  5. linux c socket ip地址 字符串 数字 转换 inet_addr inet_ntoa

    目录 0.转换函数 1.介绍inet_addr函数 2.介绍inet_ntoa函数 3.一般使用总结 inet_addr 将字符串形式的IP地址 -> 网络字节顺序  的整型值 inet_nto ...

  6. java ip地址相关操作

    java ip地址相关操作 @(JAVA)[scala] 参考CORE JAVA. 在JAVA中,InetAddress类用于操作与IP地址相关的内容,常用方法如下: java.net.InetAdd ...

  7. ip地址转换数字函数 iton_IP地址的字符串形式和数字形式之间的相互转换函数

    最近要用到网络编程的东西,差一点自己去山寨已有的函数.基础不好,不知道已有函数可以满足需要,呵呵. 这个示例程序说的是ip地址的数字形式和字符串形式之间的相互转换. 从字符串形式转换到数字形式: in ...

  8. ip地址转换数字函数 iton_PHP中IP地址与整型数字互相转换详解

    IP转换成整型存储是数据库优化一大趋势,不少人目前存储IP时还在使用字符串类型存储,字符串索引比整型索引消耗资源很多,特别是表中数据量大的时候,以及求查询某一个ip段的数据,今天说的ip是指ip4,i ...

  9. ip地址转换数字函数 iton_数字转IP地址函数

    -- 数字转 IP 地址函数: IF OBJECT_ID ( 'dbo.fn_IP2Str' )> 0 DROP FUNCTION dbo . fn_IP2Str GO CREATE FUNCT ...

最新文章

  1. 在Ubuntu 16.04.5 LTS上安装pygame模块
  2. 界面之下:还原真实的MV*模式
  3. ZenHub已集成于GitHub企业版
  4. Git强制覆盖还原本地救火命令
  5. LeetCode 540. Single Element in a Sorted Array
  6. Pytorch —— GPU的使用
  7. django 1.8 官方文档翻译: 6-1-1 Django 的设置
  8. Hadoop集群搭建(六):hadoop配置namenode服务
  9. linux安全模块学习之LSM的介绍实现
  10. 如何彻底删除电脑上的软件
  11. 【C语言】size与strlen的区别解析
  12. mac 文字识别软件ocr_树洞OCR文字识别软件for mac-树洞OCR文字识别mac版v1.2.0 最新版-腾牛苹果网...
  13. 中国医科大计算机在线作业答案,16秋中国医科大学《计算机应用基础(中专起点大专)》在线作业标准答案包100分...
  14. 培养孩子讲故事的心得
  15. Android如何查看手机网卡信息和ip信息
  16. 在家看片利器,有Android App以及桌面应用(已开源)。
  17. 让杂牌蓝牙适配器也安装上windows 自带的驱动程序
  18. 虚拟机能ping主机,主机ping虚拟机请求超时
  19. 青岛大学计算机二级考试,2017年3月青岛大学计算机等级考试准考证打印时间
  20. 小小Python爬虫(0)

热门文章

  1. Mybatis简单数据库查询
  2. 常用animation动画
  3. Opencv step by step - 图像变换
  4. 《认清C++语言》---接口继承和实现继承
  5. HDU2100 Lovekey【大数+进制】
  6. CCF201512试题
  7. TCP/IP 协议 —— ARP
  8. 益智小游戏(app)
  9. pandas  数据规整化 —— 合并、清理与转换
  10. windows 使用 tricks