对python使用telnet实现弱密码登录的方法详解

系统环境:

64位win7企业版

python2.7.10

2016.08.16修改内容:

1)read_until()函数是可以设置timeout的,之前不能获取到password之后的返回是因为调用read_some()函数次数不够,没有读取到返回信息

2)如果不设置read_until()函数的timeout值,那么程序将一直建立连接而不会关闭,导致程序永远没有返回,所以设置timeout还是有必要的

3)不同服务器返回的内容是不一样的,例如网络设备radware返回就不是"login:",而是"user:",有的password的p是大写的,所以匹配"assword:"比较好。并且,不同服务器返回到的用户密码错误提示也是不一样的,可以在python控制台先试试再去写代码。

def check_23_port(ip,username,passwd):
 try:
  tn=telnetlib.Telnet()#
  #tn.set_debuglevel(0),设置为2可以看到更多信息
  tn.open(host=ip)
  tn.read_until('login:')#这里设置timeout=10比较好,否则如果不能匹配字符串,这个连接将一直建立,程序不会返回
  tn.write(username+'\r\n')
  tn.read_until('password:')
  tn.write(passwd+'\r\n')
  tn.read_some()#为result准备数据,可能需要多调用几次才能够获取到服务器返回的信息"Login Failed"
  result = tn.read_some()#这里调用两次,不同的操作系统返回的不一样,AIX linux返回的是invalid
  rex = r'Login Failed'
  tmp = re.search(rex,result)
  if tmp == None:
   return True
  else:
   return False
  tn.write("exit\r\n")
  tn.close()
 except Exception as e:
  pass
  print "connect error:" + str(e)

以上这篇对python使用telnet实现弱密码登录的方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python实现的远程登录windows系统功能示例

    本文实例讲述了Python实现的远程登录windows系统功能.分享给大家供大家参考,具体如下: 首先安装wmi 命令: pip install wmi 然后会报错缺少pywin32-219.win-amd64-py2.7.exe包,去下面这个地址下载 http://sourceforge.net/projects/pywin32/files/pywin32/ 寻找适合自己电脑位数和python的包下载安装 下面是远程连接的代码: # -*- coding:utf-8 -*- #! python

  • Python实现的使用telnet登陆聊天室实例

    本文实例讲述了Python实现的使用telnet登陆聊天室.分享给大家供大家参考.具体如下: 前久在家学习Python的时候写的一个简单的聊天室,可以使用telnet来登陆. 遗憾的是现在对中文的支持很差,英文聊天倒是没什么问题了. 功能很简单的,应该没有你想象的那么强大,但是你如果有兴趣的话可以试试的. 另外,让我惊奇的是它可以在Android的平板上运行SL4A的Python解释器上运行(需要稍微改几句代码,貌似是编码的那个地方,我记不清了). 现在这个是可以在PC上跑起来的. 废话不多,直

  • Python判断telnet通不通的实例

    这个跟ping那个差不多,ping的那个脚本就是通过这个改了下,大体一致,不过telnet的不需要判断返回的字符串.快一些 这里具体需要telnet的ip是需要自己向定义好的数组中写的 我这里加了一个定时,是7200秒,也就是2小时 行了,上代码吧: #!/usr/bin/env python # coding: utf8 import telnetlib import time import codecs import os # telnet host def telnetdo(host, s

  • python实现telnet客户端的方法

    本文实例讲述了python实现telnet客户端的方法.分享给大家供大家参考.具体如下: python实现的telnet客户端程序,python自带一个telnetlib模块,可以通过其Telnet类实现telnet操作 import getpass import sys import telnetlib HOST = "hostname" user = raw_input("Enter your remote account:") password = getpa

  • python远程登录代码

    在 python 中有一个 telnetlib,它的作用就是建立一个通到主机的 telnet连线实体, 然后向主机传送命令 (就像用键盘输入一样 )并从该连线接收数据.利用它, 我们可以把示范 1的所有内容从 "人 -机 '交流变成'机 -机 '交流,这样也可以做到处理 pop3 邮箱的工作.不过既然我们已经试过了 pop3,这一次可以试用真的 telnet 埠 23 做些好玩的东西. 以下是代码片段:   1 # telnetdo.py     2 #!/usr/bin/env python 

  • Python实现telnet服务器的方法

    本文实例讲述了Python实现telnet服务器的方法.分享给大家供大家参考.具体实现方法如下: import threading class myThread(threading.Thread): def __init__(self,conn,add): threading.Thread.__init__(self) self.inputstr = '' self.connection=conn self.address=add def run(self): ii=0 while True:

  • 对python使用telnet实现弱密码登录的方法详解

    系统环境: 64位win7企业版 python2.7.10 2016.08.16修改内容: 1)read_until()函数是可以设置timeout的,之前不能获取到password之后的返回是因为调用read_some()函数次数不够,没有读取到返回信息 2)如果不设置read_until()函数的timeout值,那么程序将一直建立连接而不会关闭,导致程序永远没有返回,所以设置timeout还是有必要的 3)不同服务器返回的内容是不一样的,例如网络设备radware返回就不是"login:&

  • python更新数据库中某个字段的数据(方法详解)

    连接数据库基本操作,我把每一步的操作是为什么给大家注释一下,老手自行快进. 请注意这是连接数据库操作,还不是更新. import pymysql #导包 #连接数据库 db = pymysql.connect(host='localhost', user='用户名', password='数据库密码', port=3306, db='你的数据库名字') #定义游标 cursor = db.cursor() #sql语句 sql = 'select * from students;' cursor

  • 在python中按照特定顺序访问字典的方法详解

    最近使用python写一些东西,在参考资料的时候发现字典是没有顺序的,那么怎么样按照一定顺序访问字典呐,我找到了一个小方法: 假设一个字典是: D = {'a': '1', 'b': '2', 'c': '3'} 如果我们要按照a, b, c的顺序访问字典,可以借助一个列表,比如说: L = list(D.keys()) L.sort() for key in L: print(key, 'is' D[key]) 输出为: a is 1 b is 2 c is 3 需要倒序的话只需使用倒序函数排

  • 对python tkinter窗口弹出置顶的方法详解

    如果想要python 的tkinter窗口置顶,加上下面两句即可实现root窗口的置顶显示,可以用于某些程序的消息提示,能够弹出到桌面显示 root = Tk() root.wm_attributes('-topmost',1) 以上这篇对python tkinter窗口弹出置顶的方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 基于Python的Post请求数据爬取的方法详解

    为什么做这个 和同学聊天,他想爬取一个网站的post请求 观察 该网站的post请求参数有两种类型:(1)参数体放在了query中,即url拼接参数(2)body中要加入一个空的json对象,关于为什么要加入空的json对象,猜测原因为反爬虫.既有query参数又有空对象体的body参数是一件脑洞很大的事情. 一开始先在apizza网站 上了做了相关实验才发现上面这个规律的,并发现该网站的请求参数要为raw形式,要是直接写代码找规律不是一件容易的事情. 源码 import requests im

  • 对python PLT中的image和skimage处理图片方法详解

    用PLT比较轻量级,用opencv是比较重量级 import numpy as np from PIL import Image if __name__ == '__main__': image_file = '/Users/mac/Documents/学习文档/机器学习/5.Package/son.png' height = 100 #假定写入图片的高度是100 img = Image.open(image_file) img_width, img_height = img.size #获取i

  • 更改Python的pip install 默认安装依赖路径方法详解

    前言 声明:python版本3.6,以下讨论的Python也都是适用于3.x版本 在实际使用安装python的pip安装 依赖库是非常的便捷的. 而且一般大家使用的都是安装Anaconda 来学习和实践python项目. 我们通常都是直接就是使用 pip install **** 其中****代表就是安装的依赖库名或者包名. 但是简单的背后就是,我们的最重要的系统盘C盘都是逐渐满了.更关键是你满完之后还不好去删除或者将一些依赖库放在别的盘的路径下,这就是一件非常糟糕的事情了. 所以今天,为了拯救

  • 对python实现合并两个排序链表的方法详解

    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 1.迭代方法 def Merge(self, pHead1, pHead2): p1, p2 = pHead1, pHead2 if p1 and p2: if p1.val < p2.val: head = p1 p1 = p1.next else: head = p2 p2 = p2.next cur = head elif p1: return p1 else: return p2 while p

  • python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法:sys.argv.argparse解析.getopt解析 方法一:sys.argv -- 命令行执行:python test_命令行传参.py 1,2,3 1000 # test_命令行传参.py import sys def para_input(): print(len(sys.argv)) #

  • Python 在 VSCode 中使用 IPython Kernel 的方法详解

    本文介绍,在 VSCode 使用 IPython Kernel的设置方法,详细介绍如下所示: 要达到的效果: 只需按下 Ctrl+:,选中的几行代码,就会自动发送到 IPython Kernel,并运行,得到结果!当然,快捷键也可以另行设置! 为什么要这么做: 首先,这种配置方式,比较轻量快速: 主要用于,增加写代码时的"互动性",可以边写代码,边测试:例如,在写代码时候,快速测试下,一行或几行代码,看看效果: 所以,非常适合新手,边写边学习,或者,需要写个几十行代码,迅速解决问题,的

随机推荐