ip地址与整型互转各种方法总结
来源:互联网 发布:深圳可变数据印刷 编辑:程序博客网 时间:2024/06/06 00:02
方法1:php语言
PHP中提供了专门的函数用来将ip转换为整型:ip2long以及long2ip
$ip="218.65.110.134";echo ip2long($ip);print long2ip('123456789');
方法2:Python
python有两种方法:
>>> import socket>>> import struct>>> socket.inet_ntoa(struct.pack('I', socket.htonl(123456789)))'7.91.205.21'>>> socket.ntohl(struct.unpack('I', socket.inet_aton(str('7.91.205.21')))[0])123456789L推荐使用下面这种方法:
>>> ip = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)])>>> ip(123456789)'7.91.205.21'>>> ip = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])])>>> ip('7.91.205.21')123456789这一种方法使用lambda构造匿名函数。有关匿名函数lambda以及enumerate的用法参见:
python的lambda函数介绍
python enumerate用法
补充:
def longtoip(x): return '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)])def iptolong(ip): return reduce(lambda x,y:(x<<8)+y,map(int,ip.split('.')))
方法3:Shell
#!/bin/bash#ip2int:ip地址转整型#int2ip:整型转ipfunction ip2int(){ A=$(echo $1 | cut -d '.' -f1) B=$(echo $1 | cut -d '.' -f2) C=$(echo $1 | cut -d '.' -f3) D=$(echo $1 | cut -d '.' -f4) result=$(($A<<24|$B<<16|$C<<8|$D)) echo $result}function int2ip(){ A=$((($1 & 0xff000000 ) >>24)) B=$((($1 & 0x00ff0000)>>16)) C=$((($1 & 0x0000ff00)>>8)) D=$(($1 & 0x000000ff)) result=$A.$B.$C.$D echo $result}a='7.91.205.21'b=123456789ip2int $aint2ip $bip2int方法中使用左移位操作;int2ip方法中先使用位与运算,再作位右移。
方法4:Mysql
SELECT INET_ATON('1.1.1.1') as IP;SELECT INET_NTOA('123456789') as IP;INET_ATON方法用于将点分十进制的ip地址转换为整型;
INET_NTOA方法用于将整型转换为对应的点分十进制的ip地址。
本文为Eliot原创,转载请注明出处:http://blog.csdn.net/xyw_blog/article/details/18358071
0 0
- ip地址与整型互转各种方法总结
- ip地址与整型互转各种方法总结
- Delphi版IP地址与整型互转
- JAVA IP地址转成长整型方法
- 交换两个整型数各种方法总结
- JAVA 长整型转换为IP地址的方法
- 朝花夕拾:JAVA长整型转化为IP地址的方法
- 微软面试题:IP地址转整型数字,整型数字转IP地址,16进制转IP地址
- 字符型IP地址与整型之间转换
- Oracle IP地址整型与字符串型相互转换
- IP地址与整型数之间的转换
- 关于IP地址与整型之间的转换
- IPv4地址与整型类型互转_Java_PHP_JavaScript
- IP地址与子网掩码总结
- ip 地址 整型和字符型互转换
- IP地址字符串转无符号整型uint
- IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法
- 查询各种IP地址
- Repeater 分页学习分享
- [.Net线程处理系列]专题六:线程同步——信号量和互斥体
- 域名解析详解
- 使IE兼容placeholder属性
- [.Net 多线程处理系列专题七——对多线程的补充
- ip地址与整型互转各种方法总结
- 正则表达式使用 NSPredicate使用
- Intellij IDEA 调试Hadoop 源码
- ECMALL的登录过程机制解析
- Java编程思想读书笔记——第四章
- Wireshark抓包和tcpdump
- 返回最大值所在行的几种方式比较
- linux下printf打印带颜色
- HTTP常用请求--响应实例