前言
大家應該都有所體會,對於字串型的ip存入資料庫中,實在是個即浪費空間又浪費效能的傢伙,所以可愛的人們想出來將ip轉換為整型儲存。mysql中存在inet_ato程式設計客棧n()、inet_ntoa程式設計客棧()函式進行ip整型和字串之間的轉換,那麼python中存在什麼方法可以實現mysql中inet_aton()、inet_ntoa()的功能呢?方法肯定是有的~
方法如下
# 匯入相關模組包
import socket
import struct
# 將ip從字串轉為整型
>>> int(socket.inet_aton('127.0.0.1'程式設計客棧).encode('hex'),16)
程式設計客棧2130706433
# 將ip從整型轉為字串
>>> socket.inet_ntoa(struct.pack("!i",2130706433))
'127.0.0.1'
拓展python下利用正規表示式來匹配校驗乙個字串是否為ip位址
def checkip(ip):
p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.)(25[0-5]|2[0-4]\d|[01]?\d\d?)$程式設計客棧')
if p.match(ip):
return true
else:
return false
總結本文位址:
python 整型與IP位址的轉換
1.strip 函式接受引數,可刪除兩邊的字元,例如 strip 0b 0和b是或的關係。在 中使用了lstrip 是因為bin函式進行轉換成二進位制數字時會自動新增0b 2.zfill的功能是將字串右對齊,前面用0補齊。3.中呼叫的方法對於引數有要求是字串或是整型的,這點需要注意轉換 實現 def...
用python批量生成有效的IP位址
usr bin env python coding utf 8 import time time start time.time 設定執行開始時間 批量生成ip位址 def get ip number 10,start 1.1.1.1 file open ip list.txt w starts s...
將長整型IP位址轉換成點分十進位制
struct acd host acd user data struct in addr addr char a 網路ip位址本是用32位二進位制來表示的,為了記憶的方便可以用點分十進位制來表示ip位址,同時,網路ip位址在網路傳輸和計算機內部的儲存方式也不同,需要用函式來進行轉換。1.將點分十進位...