欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

自己亲自做的 python 判断 sftp 登录连接是否正常 有大用 有大大用 有大大大用

ftp_80.130.py 

#!/usr/bin/python3    
# 导入 socket、sys 模块    
import socket
import sys
import pysftp
import tkinter as tk
from paramiko.ssh_exception import AuthenticationException

   
host = '192.168.80.130'    
port = 22    

   
def check_account_pwd(username,password):
    cnopts = pysftp.CnOpts()
    cnopts.hostkeys = None    

   
    try:
        connObj = pysftp.Connection(host=host, username=username, password=password, cnopts=cnopts)
        print("用户名密码是正确的")
        connObj.close()
        root1 = tk.Tk()
        info_label = tk.Label(root1, text="1)用户名密码正确\n2)密码在有效期内\n3)客户端ip地址已绑定到FTP服务器")
        info_label.grid(column=0, row=1, padx=2, pady=2)
        # info_label1 = tk.Label(root1, text="1)用户名密码正确")    
        # info_label1.grid(column=0, row=1, padx=2, pady=2)    
        # info_label2 = tk.Label(root1, text="2)密码在有效期内")    
        # info_label2.grid(column=0, row=2, padx=2, pady=2)    
        # info_label3 = tk.Label(root1, text="3)客户端ip地址已绑定到FTP服务器")    
        # info_label3.grid(column=0, row=3, padx=2, pady=2)    
        btn1 = tk.Button(root1, command=root1.destroy)
        btn1.grid(column=0, row=5, padx=2, pady=2)
        btn1["text"] = "确定"    
        root1.title('提示')
        root1.geometry("220x100")

   
    except AuthenticationException as err:
        print(str(err))
        print("用户名密码不对,或者密码过期,或者客户端ip地址未绑定到FTP服务器,请联系洪守业或史平忠")
        root1 = tk.Tk()
        info_label = tk.Label(root1,text="用户名密码不对\n或者密码过期\n或者客户端ip地址未绑定到FTP服务器\n请联系洪守业或史平忠")
        info_label.grid(column=0, row=1, padx=2, pady=2)
        btn1 = tk.Button(root1, command=root1.destroy)
        btn1.grid(column=0, row=5, padx=2, pady=2)
        btn1["text"] = "确定"    
        root1.title('提示')
        root1.geometry("220x120")
    except Exception as err:
        print(str(err))
        print("用户名密码不对,或者密码过期,或者客户端ip地址未绑定到FTP服务器,请联系洪守业或史平忠")
        root1 = tk.Tk()
        info_label = tk.Label(root1,text="用户名密码不对,或者密码过期,或者客户端ip地址未绑定到FTP服务器,请联系洪守业或史平忠")
        info_label.grid(column=0, row=1, padx=2, pady=2)
        btn1 = tk.Button(root1, command=root1.destroy)
        btn1.grid(column=0, row=5, padx=2, pady=2)
        btn1["text"] = "确定"    
        root1.title('提示')
        root1.geometry("220x120")

   
def account_pwd_values():
        # 获取Entry小部件中的文本值    
        account = account_entry.get()
        pwd = pwd_entry.get()
        root.destroy()
        check_account_pwd(account,pwd)

   
root = tk.Tk()
label = tk.Label(root)
btn1 = tk.Button(root, command=root.destroy)
btn1["text"] = "确定"    
root.title('提示')


   
# server = '10.54.19.3'    


   
# 创建 socket 对象    
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(4)  # 超时为4秒    
try:

   
    s.connect((host, port))
    msg = s.recv(64)
# s.connect(('10.54.2.134', 22))    
# 接收小于 1024 字节的数据    
except TimeoutError as err:
    label["text"]='网络不通,请联系洪守业或史平忠'    
    label.place(x=100, y=50, anchor='s')
    btn1.place(x=100, y=90, anchor='s')
    root.geometry("200x100")
    root.mainloop()
    sys.exit()
else:
    print("网络是通的")
finally:
    s.close()
# 创建第一个输入框    
account_label = tk.Label(root, text="帐号:")
account_label.grid(column=0,row=0,padx=2,pady=2)
account_entry = tk.Entry(root,bd=1,relief=tk.SOLID)
account_entry.grid(column=1,row=0,columnspan=2,padx=2,pady=2)

   
# 创建第二个输入框    
pwd_label = tk.Label(root, text="密码:")
pwd_label.grid(column=0,row=1,padx=2,pady=2)
pwd_entry = tk.Entry(root,bd=1,relief=tk.SOLID)
pwd_entry.grid(column=1,row=1,columnspan=2,padx=2,pady=2)

   
# 创建一个按钮,并绑定事件处理函数    
button = tk.Button(root, text="确定", command=account_pwd_values)
button.grid(column=1,row=2,columnspan=2,padx=2,pady=2)
root.geometry("220x100")
# 运行窗口的主循环    
root.mainloop()









普通分类: