去年伺服器老是被攻擊,每次上線之後,上線的人急急忙忙下班,忘記關閉一些埠。導致有次伺服器被攻破。損失嚴重。
這段時間再做儀器對接,把醫療器械對接到我們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 ...