Python中如何将十进制数转换为对应的IP地址格式?

2026-05-25 00:511阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计344个文字,预计阅读时间需要2分钟。

Python中如何将十进制数转换为对应的IP地址格式?

需要将IP地址转换为10进制数,然后也可以将10进制数转换回IP地址,计算机会使用这个10进制数来ping对应的IP地址,说明功能已实现。代码如下:

pythonimport socket

def ip_to_decimal(ip): parts=ip.split('.') return sum(int(part) << (8 * (3 - i)) for i, part in enumerate(parts))

Python中如何将十进制数转换为对应的IP地址格式?

def decimal_to_ip(decimal): parts=[(decimal >> (8 * i)) & 0xFF for i in range(4)] return '.'.join(map(str, parts))

def ping_ip(ip): try: socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((ip, 80)) return fIP {ip} is reachable. except socket.error: return fIP {ip} is not reachable.

示例使用ip_address=192.168.1.1decimal_number=ip_to_decimal(ip_address)print(fIP Address: {ip_address})print(fDecimal Number: {decimal_number})

reverted_ip=decimal_to_ip(decimal_number)print(fReverted IP: {reverted_ip})

ping_result=ping_ip(reverted_ip)print(ping_result)

需要把ip地址转换为10进制数,然后也可以把10进制数转化为ip地址,计算机ping这个十进制数可以ping通对应的ip地址,说明已经实现功能

代码如下

# 引用正则来三等分字符串 import re # 转换成二进制数 bi = "{0:b}".format(18223104) # 补齐32位 bi = "0"*(32-len(bi))+bi # 8个一组算出每8个数字的十进制,然后再加“,”分隔 ret_ip_string = '.'.join(list(map(lambda x:str(int(x,2)),re.findall(r'.{8}',bi)))) # 打印ip字符串 print(ret_ip_string)

也可以封装成函数,便于调用

def int32_to_ip(int32): import re bi = "{0:b}".format(int32) bi = "0" * (32 - len(bi)) + bi ret_ip_string = '.'.join(list(map(lambda x: str(int(x, 2)), re.findall(r'.{8}', bi)))) return ret_ip_string if __name__ == '__main__': ip = int32_to_ip(18223104) print(ip)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计344个文字,预计阅读时间需要2分钟。

Python中如何将十进制数转换为对应的IP地址格式?

需要将IP地址转换为10进制数,然后也可以将10进制数转换回IP地址,计算机会使用这个10进制数来ping对应的IP地址,说明功能已实现。代码如下:

pythonimport socket

def ip_to_decimal(ip): parts=ip.split('.') return sum(int(part) << (8 * (3 - i)) for i, part in enumerate(parts))

Python中如何将十进制数转换为对应的IP地址格式?

def decimal_to_ip(decimal): parts=[(decimal >> (8 * i)) & 0xFF for i in range(4)] return '.'.join(map(str, parts))

def ping_ip(ip): try: socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((ip, 80)) return fIP {ip} is reachable. except socket.error: return fIP {ip} is not reachable.

示例使用ip_address=192.168.1.1decimal_number=ip_to_decimal(ip_address)print(fIP Address: {ip_address})print(fDecimal Number: {decimal_number})

reverted_ip=decimal_to_ip(decimal_number)print(fReverted IP: {reverted_ip})

ping_result=ping_ip(reverted_ip)print(ping_result)

需要把ip地址转换为10进制数,然后也可以把10进制数转化为ip地址,计算机ping这个十进制数可以ping通对应的ip地址,说明已经实现功能

代码如下

# 引用正则来三等分字符串 import re # 转换成二进制数 bi = "{0:b}".format(18223104) # 补齐32位 bi = "0"*(32-len(bi))+bi # 8个一组算出每8个数字的十进制,然后再加“,”分隔 ret_ip_string = '.'.join(list(map(lambda x:str(int(x,2)),re.findall(r'.{8}',bi)))) # 打印ip字符串 print(ret_ip_string)

也可以封装成函数,便于调用

def int32_to_ip(int32): import re bi = "{0:b}".format(int32) bi = "0" * (32 - len(bi)) + bi ret_ip_string = '.'.join(list(map(lambda x: str(int(x, 2)), re.findall(r'.{8}', bi)))) return ret_ip_string if __name__ == '__main__': ip = int32_to_ip(18223104) print(ip)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。