本文實(shí)例講述了python實(shí)現(xiàn)的ip端口掃描工具類。分享給大家供大家參考,具體如下:
去年服務(wù)器老是被攻擊,每次上線之后,上線的人急急忙忙下班,忘記關(guān)閉一些端口。導(dǎo)致有次服務(wù)器被攻破。損失嚴(yán)重。
這段時(shí)間再做儀器對(duì)接,把醫(yī)療器械對(duì)接到我們saas平臺(tái),有些儀器是通過網(wǎng)線進(jìn)行數(shù)據(jù)傳輸?shù)摹Mㄟ^網(wǎng)線進(jìn)行數(shù)據(jù)傳輸,無非就是通過端口號(hào)進(jìn)行傳輸交互,但是找不到說明書,國內(nèi)搞儀器對(duì)接開發(fā)的也很少,所以網(wǎng)上開源的或者介紹的東西很少,對(duì)于我們來說,儀器是個(gè)黑盒,想要拿到里面的東西,還要自己去摸索,去試驗(yàn),比較浪費(fèi)時(shí)間,腦子一轉(zhuǎn)就想到了之前自己寫的端口掃描工具,連到一個(gè)局域網(wǎng),一鍵找到開放的端口,直接端口鏈接上,拿到數(shù)據(jù),分分鐘解決了拿數(shù)據(jù)的問題。
所以好東西要分享出來。
目前我發(fā)現(xiàn)的用處:
1,服務(wù)器上線之后的掃描工具,那些端口要開放那些不能開放,掃一掃就知道了。
2,當(dāng)確定對(duì)方是通過端口傳輸?shù)模遣恢蓝丝谔?hào),是人是妖,你也掃一掃(用端口號(hào)去傳輸數(shù)據(jù)比藍(lán)牙什么的快多了,只要你的數(shù)據(jù)足夠大,上傳和下載帶寬可以打滿你的手機(jī)所支持的帶寬)。
3,想看看自己的手機(jī)那些端口號(hào)被開放了,在設(shè)置中找到自己的ip 或者下載個(gè)命令行執(zhí)行工具 ifconfig下就知道了。
注意的是 不同的電腦不同的cpu 每次最多創(chuàng)建的線程是不一樣的,可能創(chuàng)建線程過多,會(huì)報(bào)錯(cuò),所以如果報(bào)錯(cuò),自己修改下,每次掃描的個(gè)數(shù),再剪成更小的段就可以了,或者再把seelp的時(shí)間設(shè)置的更長(zhǎng)一些,保證能把0-65536之間的端口掃描一遍就可以了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# -*- coding:utf8 -*- import socket, time, thread import os from time import sleep socket.setdefaulttimeout( 1 ) def socket_port(ip,port): try : if port> = 65535 : 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 ) #休眠 防止線程創(chuàng)建的過多報(bào)錯(cuò)(can not create new start thread) print u '掃描端口完成,總共用時(shí) :%.2f' % (time.time() - start_time) except exception,e : print u '掃描ip出錯(cuò)' if __name__ = = '__main__' : lock = thread.allocate_lock() ip_scan( '192.168.3.37' ) |
運(yùn)行結(jié)果:
希望本文所述對(duì)大家python程序設(shè)計(jì)有所幫助。
原文鏈接:https://blog.csdn.net/u014510302/article/details/79837284