stui.py 1.0 KB
Newer Older
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
1
import streamlit as st
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
2
import subprocess
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
3 4

# 创建一个标题
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
5
st.title('Python 解析域名IP地址')
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
6 7

# 创建一个文本框并接收用户输入
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
8
user_input = st.text_input('输入域名http://')
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
9 10 11

# 判断用户是否有输入,并输出一句问候语
if user_input != '':
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
12
    st.write('正在解析:,', user_input, '......')
6
622ff545dfef6c4fdb84ccec 已提交
13 14 15 16 17 18 19
    # 检测dig是否安装
    try:
        subprocess.check_output(["dig", "-v"])
    except subprocess.CalledProcessError:
        # 如果未安装,则安装dig
        subprocess.call(["sudo", "apt-get", "update"])
        subprocess.call(["sudo", "apt-get", "install", "-y", "dnsutils"])
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
20

6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
21 22
    # 使用subprocess运行dig命令并获取输出
    result = subprocess.run(["dig", "+noall", "+answer", user_input ], capture_output=True)
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
23

6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
24 25 26 27 28 29
    # 将输出转换为表格
    output_lines = result.stdout.decode('utf-8').strip().split('\n')
    table = [line.split() for line in output_lines]

    # 将表格输出到streamlit界面
    st.table(table)
6
UPDATE  
622ff545dfef6c4fdb84ccec 已提交
30
else:
6
622ff545dfef6c4fdb84ccec 已提交
31
    st.write('这是一个dig的UI界面,Stremlit太强到了')