Easily convert an IP address between an integer and a string using Python
- 2020-05-27 06:00:21
- OfStack
preface
As you all know, a string IP in a database is a real waste of space and performance, so the cute guys came up with the idea of converting IP to integer storage. MySQL has INET
_ATON()
,
INET_NTOA()
The IP function converts between an IP integer and a string. What methods exist in Python to implement MySQL
INET_ATON()
,
INET_NTOA()
What about the function? There must be a way
Methods the following
# Import the related module package
import socket
import struct
# will IP From string to integer
>>> int(socket.inet_aton('127.0.0.1').encode('hex'),16)
2130706433
# will IP From integer to string
>>> socket.inet_ntoa(struct.pack("!I",2130706433))
'127.0.0.1'
expand
Under Python, a regular expression is used to match and verify whether a string is an ip address
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
conclusion