Home >Backend Development >Python Tutorial >Python port scanning simple program

Python port scanning simple program

黄舟
黄舟Original
2016-12-15 09:21:131176browse

The example in this article shares the implementation code of Python port scanning for your reference. The specific content is as follows

Get the IP and port number of the machine:

import socket 
   
def get_my_ip(): 
  try: 
    csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
    csock.connect(('8.8.8.8', 80)) 
    (addr, port) = csock.getsockname() 
    csock.close() 
    return addr,port 
  except socket.error: 
    return "127.0.0.1" 
   
def int_to_ip(int_ip): 
  return socket.inet_ntoa(struct.pack('I', socket.htonl(int_ip))) 
   
   
def ip_to_int(ip): 
  return socket.ntohl(struct.unpack("I", socket.inet_aton(str(ip)))[0]) 
   
(ip,port)=get_my_ip()

PortScan.py

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
   
import optparse 
from socket import * 
from threading import * 
   
screenLock = Semaphore(value=1) 
   
def connScan(tgtHost, tgtPort): 
  try: 
    connSkt = socket(AF_INET, SOCK_STREAM) 
    connSkt.connect((tgtHost, tgtPort)) 
    connSkt.send('ViolentPython\r\n') 
    results = connSkt.recv(100) 
    screenLock.acquire() 
    print '[+] %d/tcp open' % tgtPort 
    print '[+] ' + str(results) 
  except: 
    screenLock.acquire() 
    print '[-] %d/tcp closed' % tgtPort 
  finally: 
  screenLock.release() 
  connSkt.close()  
   
def portScan(tgtHost, tgtPorts): 
  try: 
    tgtIP = gethostbyname(tgtHost) 
  except: 
    print "[-] Cannot resolve '%s': Unknown host" %tgtHost 
    return 
   
  try: 
    tgtName = gethostbyaddr(tgtIP) 
    print '\n[+] Scan Results for: ' + tgtName[0] 
  except: 
    print '\n[+] Scan Results for: ' + tgtIP 
   
  setdefaulttimeout(1) 
  for tgtPort in tgtPorts: 
    t = Thread(target=connScan,args=(tgtHost,int(tgtPort))) 
    t.start() 
   
def main(): 
  parser = optparse.OptionParser('usage %prog '+\ 
   &#39;-H <target host> -p <target port>&#39;) 
  parser.add_option(&#39;-H&#39;, dest=&#39;tgtHost&#39;, type=&#39;string&#39;,\ 
   help=&#39;specify target host&#39;) 
  parser.add_option(&#39;-p&#39;, dest=&#39;tgtPort&#39;, type=&#39;string&#39;,\ 
   help=&#39;specify target port[s] separated by comma&#39;) 
   
  (options, args) = parser.parse_args() 
   
  tgtHost = options.tgtHost 
  tgtPorts = str(options.tgtPort).split(&#39;,&#39;) 
   
  if (tgtHost == None) | (tgtPorts[0] == None): 
  print parser.usage 
    exit(0) 
   
  portScan(tgtHost, tgtPorts) 
   
   
if __name__ == &#39;__main__&#39;: 
  main()

The above is all about Python port scanning The content, I hope it will be helpful to everyone's learning, and I also hope that everyone will support Script Home.


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn