亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么在運行我的 python ping 腳本時出現主機未找到錯誤?

為什么在運行我的 python ping 腳本時出現主機未找到錯誤?

慕妹3146593 2023-02-07 15:56:02
我不久前制作了這個腳本,如果我沒記錯的話它可以正常工作,但現在我遇到了找不到主機的錯誤。任何幫助表示贊賞。from tkinter import *from tkinter import ttkimport socketimport sqlite3import subprocessBASE = Tk()BASE.geometry("400x400")def PING_CLIENT():        HOST = PING_ENTRY    command = "ping {} 30 -t".format(HOST)    subprocess.run(command)        PING = ttk.Button(BASE, text="Ping IP", command=PING_CLIENT)                  PING.place(x=35, y=100, height=30, width=150)PING_ENTRY = ttk.Entry(BASE)PING_ENTRY.place(x=200, y=100, height=30, width=150)BASE.mainloop()
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

您需要獲取 Entry 小部件的值。為此,請調用get()小部件上的方法。您可以在此處閱讀有關Tkinter Entry Widget的更多信息。

例子:

HOST = PING_ENTRY.get()

另外,我不確定您命令中的“30”應該做什么。如果您打算讓它 ping 30 次,則需要-n預先添加開關(在 Windows 上)或-c開關(在大多數 Linux 發行版上)。例如,在 Windows 上:

command = "ping {} -n 30 -t".format(HOST)


查看完整回答
反對 回復 2023-02-07
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

我添加這個只是為了以防萬一您希望異步執行,您可以使用subprocess.Popen而不是subprocess.run.


UI 凍結,直到run執行完成。如果您不希望這種情況發生,我建議您使用subprocess.Popen


def PING_CLIENT():


    HOST = PING_ENTRY.get()


    command = "ping {} -n 30  -t".format(HOST)

    #subprocess.run(command, shell=True)

    subprocess.Popen(command, shell=True)

來自另一個 SO答案:主要區別在于subprocess.run執行命令并等待它完成,而subprocess.Popen你可以在進程完成時繼續做你的事情,然后重復調用 subprocess.communicate 自己來傳遞和接收數據到你的進程。


編輯:添加代碼使 ping 在 30 次試驗后停止。


要使您的代碼在特定數量的數據包后停止,請使用以下代碼。


視窗:


    command = "ping -n 30 {}".format(HOST)

    pro = subprocess.Popen(command, shell=True,stdout=subprocess.PIPE)

    print(pro.communicate()[0]) # prints the stdout

Ubuntu:


    command = "ping -c 30 {}".format(HOST)

    pro = subprocess.Popen(command, shell=True,stdout=subprocess.PIPE)

    print(pro.communicate()[0]) # prints the stdout

-t 基本上在 Windows 中無限期地 ping。這就是為什么你無法阻止它。


查看完整回答
反對 回復 2023-02-07
  • 2 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號