IP地址与整形转换 java,python实现
来源:互联网 发布:仿淘宝商品详情 编辑:程序博客网 时间:2024/05/12 17:59
java 版:
注意使用java进行转换时,由于int是有符号的,符号占去了最高位,故表达范围不足以表示ip地址。
还有就是
public long transIP2Long(String ip) { if(ip.length()<8) return LENGTH_ILLEGAL_IP; long addr; long[] parts = new long[4];// all long ,in case of the number overflowed and become -,not +. try { String[] ipArr = ip.split("\\."); if(ipArr.length>4) throw new NumberFormatException(); parts[0] = (Integer.parseInt(ipArr[0]) & 0xFF); parts[1] = (Integer.parseInt(ipArr[1]) & 0xFF); parts[2] = (Integer.parseInt(ipArr[2]) & 0xFF); parts[3] = (Integer.parseInt(ipArr[3]) & 0xFF); } catch (NumberFormatException e) { //xxxxxxxxxxxxxx } addr = parts[3] & 0xFF; addr |= ((parts[2] << 8) & 0xFF00); addr |= ((parts[1] << 16) & 0xFF0000); addr |= ((parts[0] << 24) & 0xFF000000); return addr; }
python的写法似乎简单了很多,借助socket和struct即可完成
#!/usr/bin/python#int to ip,ip to int import socketimport structdef int2ip(value):ip=socket.inet_ntoa(struct.pack('I',socket.htonl(value)))return ipdef ip2int(ip):val = socket.ntohl(struct.unpack("I",socket.inet_aton(str(ip)))[0])return val
参考文章:点击打开链接
如果是在数据库操作时需要做转换,那么数据库本身已经提供了相关的转换函数
例如My SQL : INET_ATON(XX) ..... INET_NTOA(XX)
- IP地址与整形转换 java,python实现
- IP地址与整形的相互转换原理 (Python实现)
- python将IP地址转换成长整形的方法
- IP地址转换成整形
- IP地址与整形之间的相互转换
- Java实现IP地址字符串与整数之间的转换
- java实现ip地址与十进制数相互转换
- python整数与IP地址转换 [转]
- python整数与IP地址转换 [转]
- python整数与IP地址转换
- sql2005 ip地址点分十进制与长整形表示法相互转换
- python ip地址转换
- python ip地址转换
- python转换IP地址
- python ip地址转换
- java IP地址与十进制转换
- 两行Python代码实现IP地址与十进制整数互相转换
- java ip地址转换
- 随机过程及其在金融领域中的应用 第四章 习题 及 答案
- 关于什么是句柄(经典)
- jaspereport
- linux安装JDK
- Hibernate中的cascade、inverse以及mappedBy用法
- IP地址与整形转换 java,python实现
- ActiveX控件在IE中不响应Backspace消息
- iOS应用崩溃日志揭秘
- WP8 自定义震动
- Conversion to Dalvik format failed with error 1
- 递归求解最大公约数
- JDBC连接MySQL抛出异常信息乱码
- Authentication and Integration 第二篇:单点登录SSO的实现原理
- MySQL查询优化:用子查询代替非主键连接查询