用Python將IP位址在整型和字串之間輕鬆轉換

2022-09-27 06:48:14 字數 734 閱讀 7939

前言

大家應該都有所體會,對於字串型的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.將點分十進位...