Python連接埠掃描簡單程式

來源:互聯網
上載者:User
本文執行個體為大家分享了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()

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連接埠掃描的全部內容,希望對大家的學習有所協助,也希望大家多多支援指令碼之家。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.