为我的程序添加可视化窗口 ip = input('输入IP地址:') if ip.isdigit(): ip1=int(ip) # print("字符串中只包含数字") if ip1>4294967296: print('IP地址不合法') else: def ip2decimalism(ip): dec_value = 0 v_list = ip.split('.') v_list.reverse() t = 1 for v in v_list: dec_value += int(v) * t t = t * (2 ** 8) return dec_value def decimalism2ip(dec_value): ip = '' t = 2 ** 8 for _ in range(4): v = dec_value % t ip = '.' + str(v) + ip dec_value = dec_value // t ip = ip[1:] return ip if __name__ == '__main__': while(1): # ip = input() dec_value = ip2decimalism(ip) # print(dec_value) ip = decimalism2ip(dec_value) print('IP地址是:',ip) break else: ip_list = ip.split(".") ipgeshi=len(ip_list) if ipgeshi >3 and ipgeshi<5: for v in ip_list: v1=int(v) if v1>254: print('IP地址不合法') break else: for i in range(len(ip_list)): ele = bin(int(ip_list[i]))#得到 "0b11000000 0b10101000 0b1100 0b1001111" ip_list[i] = ele[2:]#把0b切掉 得到后面的二进制01内容 #ip_list[i]=ip_list[i].strip("0b")也可以去掉 if len(ip_list[i]) < 8:#补全到八位 strl = "0" * (8 - len(ip_list[i])) + ip_list[i] ip_list[i] = strl val = "".join(ip_list) print('十进制IP地址是:',int("0b"+val, base=2)) break else: print('IP地址不合法') i=input('按任意键结束')
时间: 2024-02-14 09:29:44 浏览: 57
要为您的程序添加可视化窗口,您可以使用Tkinter库来创建一个简单的窗口,并将您的代码与该窗口集成起来。以下是一个示例代码:
```python
import tkinter as tk
def convert_ip():
ip = ip_entry.get()
if ip.isdigit():
ip1 = int(ip)
if ip1 > 4294967296:
result_label.config(text='IP地址不合法')
else:
def ip2decimalism(ip):
# 将您的 IP 转换为十进制的代码
# ...
def decimalism2ip(dec_value):
# 将十进制 IP 转换为字符串形式的代码
# ...
dec_value = ip2decimalism(ip)
ip = decimalism2ip(dec_value)
result_label.config(text='IP地址是:' + ip)
else:
# 将您的 IP 转换为二进制的代码
# ...
result_label.config(text='十进制IP地址是:' + decimal_ip)
# 创建窗口
window = tk.Tk()
window.title('IP地址转换')
window.geometry('300x150')
# 添加组件
ip_label = tk.Label(window, text='请输入IP地址:')
ip_label.pack()
ip_entry = tk.Entry(window, width=20)
ip_entry.pack()
convert_button = tk.Button(window, text='转换', command=convert_ip)
convert_button.pack()
result_label = tk.Label(window, text='')
result_label.pack()
# 进入事件循环
window.mainloop()
```
您可以将您的代码放在`convert_ip()`函数中,根据输入的IP地址进行转换,并将结果显示在`result_label`标签中。希望这个示例能帮助到您!如果您有任何进一步的问题,请随时提问。
阅读全文