Python端口扫描简单程序

本文实例为大家分享了Python端口扫描的实现代码,供大家参考,具体内容如下获取本机的IP和端口号:

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() print "ip=%s port=%d" %(ip,port)

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 '+\    '-H <target host> -p <target port>')   parser.add_option('-H', dest='tgtHost', type='string',\    help='specify target host')   parser.add_option('-p', dest='tgtPort', type='string',\    help='specify target port[s] separated by comma')    (options, args) = parser.parse_args()    tgtHost = options.tgtHost   tgtPorts = str(options.tgtPort).split(',')    if (tgtHost == None) | (tgtPorts[0] == None):   print parser.usage     exit(0)    portScan(tgtHost, tgtPorts)   if __name__ == '__main__':   main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。今日的执着,会造成明日的后悔。

Python端口扫描简单程序

相关文章:

你感兴趣的文章:

标签云: