二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?

此题利用int() 函数即可解决。int() 函数用于将一个字符串或数字转换为整型。

# 不传入参数时,得到结果0
int()               # 0
int(3)              # 3
int(3.6)            # 3
# 如果是带参数base的话,为进制。并且,数据要以字符串的形式进行输入。
int('12',16)        # 18
int('0xa',16)       # 10  
int('10',8)         # 8

将二进制数转换为整数,并且连为IP。

def text(b):
    list_str=b.split(" ")
    new_str=[]
    for i in list_str:
        new_str.append(str(int(i,2)))
    return ".".join(new_str)
print(text("00001010 00000011 00001001 00001100"))      # 10.3.9.12

将IP转换为二进制

def ipfunc(ip):
    a = ip.split('.')
    s = ''
    l = []
    for i in a:
        i = bin(int(i))[2:]
        i = i.rjust(8, '0')
        l.append(i)
    s = ' '.join(l)
    return s
print(ipfunc('10.3.9.12'))

ip转换成整数的函数

import socket, struct
def ip_to_long(ip):
  Convert an IP string to long
  packedIP = socket.inet_aton(ip)
  return struct.unpack("!L", packedIP)[0]
print(ip_to_long('127.0.0.1'))                     # 2130706433

整数转换成ip地址

import socket, struct
def long_to_ip(long):
  Convert an long string to IP
  return socket.inet_ntoa(struct.pack('!L',long ))
# 注意传参时,不要加引号
print(long_to_ip(2130706433))                   # 127.0.0.1

利用Python获取本机IP

from socket import gethostbyname_ex, gethostname
local_IP_list = gethostbyname_ex(gethostname())
local_IP = gethostbyname_ex(gethostname())[2]
print(local_IP_list)
print(local_IP)
View Code

https://blog.csdn.net/bangqin0414/article/details/101890700