欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)指定ip端口掃描方式

 更新時(shí)間:2019年12月17日 11:39:59   作者:小布丁吃西瓜  
今天小編就為大家分享一篇python實(shí)現(xiàn)指定ip端口掃描方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

在Linux中判斷一臺(tái)主機(jī)是否可達(dá),可以使用ping命令,而判斷端口是否打開,可以使用telnet命令,但是telnet命令沒有超時(shí)時(shí)間的參數(shù),使用起來不是很方便,那么可以利用Python來完成一個(gè)端口掃描的功能

socket實(shí)現(xiàn)端口掃描

#!/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實(shí)現(xiàn)端口掃描

import telnetlib

def get_ip_status(ip,port):
  server = telnetlib.Telnet()   # 創(chuàng)建一個(gè)Telnet對(duì)象
  try:
    server.open(ip,port)     # 利用Telnet對(duì)象的open方法進(jìn)行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)

多線程實(shí)現(xiàn)高效掃描

#!/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實(shí)現(xiàn)指定ip端口掃描方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論