编写脚本获得当前的IP地址,并判断它是哪一类IP地址(A/B/C/D/E)
时间: 2024-10-12 08:12:47 浏览: 10
在Python中,你可以通过`socket`库来获取本地的IP地址并判断其类别。首先,我们编写一个简单的脚本来完成这个任务:
```python
import socket
def get_ip_address_and_class():
try:
ip = socket.gethostbyname(socket.gethostname())
# 分割IP地址成四部分
parts = ip.split('.')
if len(parts) == 4: # 判断是否是IPv4地址
network_part = int(parts[0]) << 24 | int(parts[1]) << 16 | int(parts[2]) << 8 | int(parts[3])
if network_part >= 0 and network_part <= 2236959775: # A类IP范围
class_type = 'A'
elif network_part >= 2236959776 and network_part <= 2484275839: # B类IP范围
class_type = 'B'
elif network_part >= 2484275840 and network_part <= 2814749767: # C类IP范围
class_type = 'C'
elif network_part >= 2814749768 and network_part <= 3232235527: # D类IP范围,通常用于组播
class_type = 'D'
else: # E类IP范围,很少用到
class_type = 'E'
else: # 如果不是IPv4,可能是IPv6,但是这里简单处理,只识别IPv4
class_type = 'Unknown (not IPv4)'
except Exception as e:
print(f"Error occurred while getting IP address: {e}")
class_type = 'Unknown (error)'
return ip, class_type
# 调用函数获取结果
ip_address, ip_class = get_ip_address_and_class()
print(f"Current IP Address: {ip_address}, Class: {ip_class}")
阅读全文