python实现指定ip端口扫描方式

yipeiwu_com7年前Python基础

在Linux中判断一台主机是否可达,可以使用ping命令,而判断端口是否打开,可以使用telnet命令,但是telnet命令没有超时时间的参数,使用起来不是很方便,那么可以利用Python来完成一个端口扫描的功能

socket实现端口扫描

#!/usr/bin/env python

import socket

def get_ip_status(ip,port):
  server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  try:
    server.connect((ip,port))
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  for port in range(20,100):
    get_ip_status(host,port)

telnetlib实现端口扫描

import telnetlib

def get_ip_status(ip,port):
  server = telnetlib.Telnet()   # 创建一个Telnet对象
  try:
    server.open(ip,port)     # 利用Telnet对象的open方法进行tcp链接
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  for port in range(20,100):
    get_ip_status(host,port)

多线程实现高效扫描

#!/usr/bin/env python

import telnetlib
import threading

def get_ip_status(ip,port):
  server = telnetlib.Telnet()
  try:
    server.open(ip,port)
    print('{0} port {1} is open'.format(ip, port))
  except Exception as err:
    print('{0} port {1} is not open'.format(ip,port))
  finally:
    server.close()

if __name__ == '__main__':
  host = '10.0.0.11'
  threads = []
  for port in range(20,100):
    t = threading.Thread(target=get_ip_status,args=(host,port))
    t.start()
    threads.append(t)

  for t in threads:
    t.join()

以上这篇python实现指定ip端口扫描方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

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

最近使用python写一些东西,在参考资料的时候发现字典是没有顺序的,那么怎么样按照一定顺序访问字典呐,我找到了一个小方法: 假设一个字典是: D = {'a': '1', 'b':...

浅谈Python黑帽子取代netcat

浅谈Python黑帽子取代netcat

按照各位大佬的博客来,端口连接的命令始终连接不上。 后来问了同学,在开了监听之后: 使用书上的代码连接不能成功,连接的命令改成:nc www.baidu.com 80(同理 监听本地就...

Python查询IP地址归属完整代码

本文实例为大家分享了Python查询IP地址归属的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding: utf-8 -*- #...

python实现人工智能Ai抠图功能

python实现人工智能Ai抠图功能

自己是个PS小白,没办法只能通过技术来证明自己。 话不多说,直接上代码 from removebg import RemoveBg import requests import os...

基于PyQt4和PySide实现输入对话框效果

基于PyQt4和PySide实现输入对话框效果

今天做了个基于PyQt4和PySide的输入对话框.已放到PyPi中,包名wlab,大家可以使用pip安装: pip install wlab 在程序输入中,有时会要求同时改变多个参...