使用Python編寫簡單的端口掃描器的實(shí)例分享
單線程實(shí)現(xiàn)
單線程實(shí)現(xiàn)道理比較簡單,這里嘗試Soket連接3389,連接成功說明端口開放,否則說明沒有開遠(yuǎn)程服務(wù)。隨便修改了一下就ok了,代碼如下,最終得到自己的IP地址。
#!/usr/bin/env python
import socket
if __name__=='__main__':
port=3389
s=socket.socket()
for cnt in range(253,2,-1):
address='XXX.XXX.XXX.'+str(cnt) #XXX.XXX.XXX IP網(wǎng)段
try:
s.connect((address,port))
print address
except socket.error,e:
print 'Error OR Port Not Opened'
Python的代碼簡單明了,但是功能不簡單,速度有些慢,主要還是單線程和網(wǎng)絡(luò)的原因吧。改進(jìn)一下可以當(dāng)一個簡陋的端口掃描器使用了,掃描指定網(wǎng)段、指定端口,多線程速度可能能好一點(diǎn)吧。
多線程實(shí)現(xiàn)
前幾天看了個講使用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'端口掃描結(jié)束'
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)
相關(guān)文章
完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法
這篇文章主要介紹了完美解決torch.cuda.is_available()一直返回False的玄學(xué)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Python爬蟲實(shí)現(xiàn)獲取動態(tài)gif格式搞笑圖片的方法示例
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)獲取動態(tài)gif格式搞笑圖片的方法,結(jié)合實(shí)例形式分析了Python針對gif格式圖片的爬取、下載等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
Python報錯TypeError: ‘NoneType‘ object is
在Python編程中,TypeError 是一個常見的錯誤,它表明代碼中存在類型不匹配的問題,TypeError: 'NoneType' object is not subscriptable 是一個具體的例子,本文將探討這個錯誤的原因,并提供幾種解決方案,需要的朋友可以參考下2024-10-10
Python圖像處理庫PIL的ImageFilter模塊使用介紹
這篇文章主要介紹了Python圖像處理庫PIL的ImageFilter模塊使用介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

