Heim  >  Artikel  >  Backend-Entwicklung  >  In Python implementierte Port-Scan-Funktion

In Python implementierte Port-Scan-Funktion

不言
不言Original
2018-04-09 14:42:561938Durchsuche

Dieser Artikel stellt hauptsächlich die in Python implementierte Port-Scanning-Funktion vor. Ich werde sie hier mit Ihnen teilen. Freunde in Not können darauf verweisen.

Dieser Artikel beschreibt die in Python implementierte Port-Scanning-Funktion mit Beispielen. Teilen Sie es als Referenz mit allen wie folgt:

Ein Code


import sys
import socket
import multiprocessing
def ports(ports_service):
  #获取常用端口对应的服务名称
  for port in list(range(1,100))+[143,145,113,443,445,3389, 8080]:
    try:
      ports_service[port] = socket.getservbyport(port)
    except socket.error:
      pass
def ports_scan(HOST, ports_service):
  ports_open = []
  try:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #sock.settimeout(60)
  except socket.error:
    print('socket creation error')
    sys.exit()
  for port in ports_service:
    try:
      #尝试连接指定端口
      sock.connect((HOST,port))
      #记录打开的端口
      ports_open.append(port)
      sock.close()
    except socket.error:
      pass
  return ports_open
if __name__=='__main__':
  m = multiprocessing.Manager()
  ports_service = dict()
  results = dict()
  ports(ports_service)
  #创建进程池,允许最多8个进程同时运行
  pool = multiprocessing.Pool(processes=8)
  net = '192.168.0.'
  for host_number in map(str,range(105,106)):
    host = net+host_number
    #创建一个新进程,同时记录其运行结果
    results[host] = pool.apply_async(ports_scan, (host, ports_service))
    print('starting '+host+'...')
  #关闭进程池,close()必须在join()之前调用
  pool.close()
  #等待进程池中的进程全部执行结束
  pool.join()
  #打印输出结果
  for host in results:
    print('='*30)
    print(host,'.'*10)
    for port in results[host].get():
      print(port, ':', ports_service[port])


Ergebnisse der zweiten Operation

ab 192.168.0.105...
======== == =====================
192.168.0.105 .........
80 : http

Verwandte Empfehlungen:

Python implementiert die Methode der Verwendung eines Generators zur Implementierung iterierbarer Objekte

Beispiel eines in Python_python implementierten HMacMD5-Verschlüsselungsalgorithmus

Das obige ist der detaillierte Inhalt vonIn Python implementierte Port-Scan-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn