使用Python編寫簡(jiǎn)單的端口掃描器的實(shí)例分享
單線程實(shí)現(xiàn)
單線程實(shí)現(xiàn)道理比較簡(jiǎn)單,這里嘗試Soket連接3389,連接成功說(shuō)明端口開放,否則說(shuō)明沒(méi)有開遠(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的代碼簡(jiǎn)單明了,但是功能不簡(jiǎn)單,速度有些慢,主要還是單線程和網(wǎng)絡(luò)的原因吧。改進(jìn)一下可以當(dāng)一個(gè)簡(jiǎn)陋的端口掃描器使用了,掃描指定網(wǎng)段、指定端口,多線程速度可能能好一點(diǎn)吧。
多線程實(shí)現(xiàn)
前幾天看了個(gè)講使用Python掃描端口的教程,看了之后自己也寫了個(gè)掃描端口的腳本。記錄下來(lái),方便自己以后回顧。
端口掃描端口效果圖

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和端口號(hào),掃描判斷端口是否開放
"""
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'掃描端口完成,總共用時(shí) :%.2f' %(time.time()-start_time)
raw_input("Press Enter to Exit")
except:
print u'掃描ip出錯(cuò)'
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é)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
使用ChatGPT來(lái)自動(dòng)化Python任務(wù)
這篇文章主要介紹了使用ChatGPT來(lái)自動(dòng)化Python任務(wù)的相關(guān)資料,需要的朋友可以參考下2022-12-12
Python爬蟲實(shí)現(xiàn)獲取動(dòng)態(tài)gif格式搞笑圖片的方法示例
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)獲取動(dòng)態(tài)gif格式搞笑圖片的方法,結(jié)合實(shí)例形式分析了Python針對(duì)gif格式圖片的爬取、下載等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
Python報(bào)錯(cuò)TypeError: ‘NoneType‘ object is
在Python編程中,TypeError 是一個(gè)常見(jiàn)的錯(cuò)誤,它表明代碼中存在類型不匹配的問(wèn)題,TypeError: 'NoneType' object is not subscriptable 是一個(gè)具體的例子,本文將探討這個(gè)錯(cuò)誤的原因,并提供幾種解決方案,需要的朋友可以參考下2024-10-10
Python圖像處理庫(kù)PIL的ImageFilter模塊使用介紹
這篇文章主要介紹了Python圖像處理庫(kù)PIL的ImageFilter模塊使用介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

