使用Python扫描端口情况详解编程语言

QQ图片20150604211957.png    

使用Python扫描端口情况详解编程语言

[Python]代码    

# -*- coding:utf8 -*- 
#!/usr/bin/python 
# Python:          2.7.8 
# Platform:        Windows 
# Authro:          wucl 
# Program:         端口扫描 
# History:         2015.6.1 
 
import socket, time, thread 
socket.setdefaulttimeout(3) 
 
def socket_port(ip,port): 
    """ 
    输入IP和端口号,扫描判断端口是否开放 
    """ 
    try: 
        if port>=65535: 
            print u'端口扫描结束' 
        s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
        result=s.connect_ex((ip,port)) 
        if result==0: 
            lock.acquire() 
            print  ip,u':',port,u'端口开放' 
            lock.release() 
        s.close() 
    except: 
        print u'端口扫描异常' 
 
def ip_scan(ip): 
    """ 
    输入IP,扫描IP的0-65534端口情况 
    """ 
    try: 
        print u'开始扫描 %s' % ip 
        start_time=time.time() 
        for i in range(0,65534): 
            thread.start_new_thread(socket_port,(ip,int(i))) 
        print u'扫描端口完成,总共用时 :%.2f' %(time.time()-start_time) 
        raw_input("Press Enter to Exit") 
    except: 
        print u'扫描ip出错' 
         
 
if __name__=='__main__': 
    url=raw_input('Input the ip you want to scan:/n') 
    lock=thread.allocate_lock() 
    ip_scan(url) 
 
 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/8119.html

(0)
上一篇 2021年7月18日 19:18
下一篇 2021年7月18日 19:18

相关推荐

发表回复

登录后才能评论