您现在的位置是:首页 > 学无止境 > 其他网站首页其他 如何将IP存入数据库,PHP提供ip2long和long2ip函数来实现
如何将IP存入数据库,PHP提供ip2long和long2ip函数来实现
- 其他
- 2019-09-22
简介ip2long函数会把一个ipv4转换成一串整型数字的形式,便于存储在数据库中可以节省空间和索引。ip2long函数的实现是先通过 . 把ip切割成4个数字,并进行位左移运算,最终拼接而成。字数
480.5
ip2long函数会把一个ipv4转换成一串整型数字的形式,便于存储在数据库中可以节省空间和索引。ip2long函数的实现是先通过 . 把ip切割成4个数字,并进行位左移运算,最终拼接而成。反之就是long2ip的实现了。
ip2long如图:
一、ip2long函数实现
1.实现1,根据上图方式进行相应位运算实现
2.实现2
二、long2ip函数实现
以上代码是由PHP的内置函数long2ip来实现的。但是对于想通过移位来自己实现的童鞋来说,可能没有那么简单。因为PHP的>>运算符是算术右移运算符,所以如果最高位是1的话,右移的结果是在高位补1,这跟结果不符。但是我们可以用另一种思路去解决:保存最高位(符号位),然后将最高位置0,之后再将高8位的最高位置1(这取决于之前保存的符号位)。代码实现如下:
转载:
感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/349.html”。
- 其他
- 2019-09-22
ip2long函数会把一个ipv4转换成一串整型数字的形式,便于存储在数据库中可以节省空间和索引。ip2long函数的实现是先通过 . 把ip切割成4个数字,并进行位左移运算,最终拼接而成。反之就是long2ip的实现了。
ip2long如图:
一、ip2long函数实现
1.实现1,根据上图方式进行相应位运算实现
2.实现2
二、long2ip函数实现
以上代码是由PHP的内置函数long2ip来实现的。但是对于想通过移位来自己实现的童鞋来说,可能没有那么简单。因为PHP的>>运算符是算术右移运算符,所以如果最高位是1的话,右移的结果是在高位补1,这跟结果不符。但是我们可以用另一种思路去解决:保存最高位(符号位),然后将最高位置0,之后再将高8位的最高位置1(这取决于之前保存的符号位)。代码实现如下:
转载: 感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/349.html”。