Python實現的IP埠掃瞄工具類示例

2022-09-28 09:39:07 字數 1716 閱讀 5241

去年伺服器老是被攻擊,每次上線之後,上線的人急急忙忙下班,忘記關閉一些埠。導致有次伺服器被攻破。損失嚴重。

這段時間再做儀器對接,把醫療器械對接到我們saas平台,有些儀器是通過網線進行資料傳輸的。通過網線進行資料傳輸,無非就是通過埠號進行傳輸互動,但是找不到說明書,國內搞儀器對接開發的也很少,所以網上開源的或者介紹的東西很少,對於我們來說,儀器是個黑盒,想要拿到裡面的東西,還要自己去摸索,去試驗,比較浪費時間,腦子一轉就想到了之前自己寫的埠掃瞄工具,連到乙個區域網,一鍵找到開放的埠,直接埠鏈結上,拿到資料,分分鐘解決了拿資料的問題。

所以好東西要分享出來。

目前我發現的用處:

1,伺服器上線之後的掃瞄工具,那些埠要開放那些不能開放,掃一掃就知道了。

2,當確定對方是通過埠傳輸的,但是不知道埠號,是人是妖,你也掃一掃(用埠號去傳輸數szcqqwy據比藍芽什麼的快多了,只要你的資料足夠大,上傳和**頻寬可以打滿你的手機所支援的頻寬)。

3,想看看自己的手機那些埠號被開放了,在設定中找到自己的ip 或者**個命令列執行工具 ifconfig下就知道了。

注意的是 不同的電腦不同的cpu 每次最多建立的執行緒是不一樣的,可能建立執行緒過多,會報錯,所以如果報錯,自己修改下,每次掃瞄的個數,再剪成更小的段就可以了,或者再把seelp的時間設定的更長一些,保證能把0-65536之間的埠掃瞄一遍就可以了

# -*- coding:utf8 -*-

import socket, time, thread

import os

from time import sleep

socket.setdefaulttimeout(1)

def socket_port(ip,port):

try:

if port>=6553程式設計客棧5:

return

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 exception,e:

pass

def ip_scan(ip):

"""輸入ip,掃瞄ip的0-65534埠情況

""程式設計客棧"

try:

print u'開始掃瞄 %s' % ip

start_time=time.time()

for j in range(0,660):

for i in range(j*100,100*(j+1)):

thread.start_new_thread(socket_port,(ip,int(i)))

sleep(0.1)#休眠 防止執行緒建立的過多報錯(can not create new start thread)

print u'掃瞄埠完成,總共用時 :%.2f' %(time.time()-start_time)

except exception,e :

print u'掃瞄ip出錯'

if __name__=='__main__':

lock程式設計客棧=thread.allocate_lock()

ip_scan('192.168.3.37')

執行結果:

python實現埠掃瞄

一 import socket import multiprocessing def ports ports service 獲取常用埠對應的服務名稱 for port in list range 1,100 143,145,113,443,445,3389,8080 try ports servi...

python單ip埠掃瞄器

from socket import import threading 匯入執行緒相關模組 qianxiao996精心製作 lock threading.lock opennum 0 threads 定義執行緒列表 def portscanner host,port global opennum t...

python 多ip埠掃瞄器

from socket import import threading 匯入執行緒相關模組 import re qianxiao996精心製作 lock threading.lock threads 定義執行緒列表 def portscanner host,port try s socket af ...