前言
大家應(yīng)該都有所體會(huì),對(duì)于字符串型的IP存入數(shù)據(jù)庫(kù)中,實(shí)在是個(gè)即浪費(fèi)空間又浪費(fèi)性能的家伙,所以可愛的人們想出來(lái)將IP轉(zhuǎn)換為整型存儲(chǔ)。MySQL中存在INET_ATON()
、INET_NTOA()
函數(shù)進(jìn)行IP整型和字符串之間的轉(zhuǎn)換,那么Python中存在什么方法可以實(shí)現(xiàn)MySQL中INET_ATON()
、INET_NTOA()
的功能呢?方法肯定是有的~
方法如下
1
2
3
4
5
6
7
8
9
|
# 導(dǎo)入相關(guān)模塊包 import socket import struct # 將IP從字符串轉(zhuǎn)為整型 >>> int (socket.inet_aton( '127.0.0.1' ).encode( 'hex' ), 16 ) 2130706433 # 將IP從整型轉(zhuǎn)為字符串 >>> socket.inet_ntoa(struct.pack( "!I" , 2130706433 )) '127.0.0.1' |
拓展
Python下利用正則表達(dá)式來(lái)匹配校驗(yàn)一個(gè)字符串是否為ip地址
1
2
3
4
5
6
|
def checkip(ip): p = re. compile ( '^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$' ) if p.match(ip): return True else : return False |
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。