Python利用socket模塊開(kāi)發(fā)簡(jiǎn)單的端口掃描工具的實(shí)現(xiàn)
一、socket
1.簡(jiǎn)介
Socket又稱(chēng)"套接字",應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求,使主機(jī)間或者一臺(tái)計(jì)算機(jī)上的進(jìn)程間可以通訊。
socket的工作流程
- socket 采用C/S 模式,分為服務(wù)端和客戶端
- 服務(wù)端數(shù)據(jù)處理流程
- 創(chuàng)建socket -> 綁定到地址和端口 -> 等待連接 -> 開(kāi)始通信-> 關(guān)閉連接
- 客戶端數(shù)據(jù)處理流程
- 創(chuàng)建socket -> 等待連接 -> 開(kāi)始通信-> 關(guān)閉連接
- 客戶端沒(méi)有綁定地址和端口,是由于客戶端進(jìn)程采用的是隨機(jī)端口,當(dāng)客戶端要去連接目標(biāo)時(shí),會(huì)由系統(tǒng)自定分配一個(gè)端口號(hào)和自身ip地址去組合
2.利用方法
| 函數(shù) | 描述 |
|---|---|
| s.settimeout(timeout) | 設(shè)置套接字操作的超時(shí)期,timeout是一個(gè)浮點(diǎn)數(shù),單位是秒。值為None表示沒(méi)有超時(shí)期。一般,超時(shí)期應(yīng)該在剛創(chuàng)建套接字時(shí)設(shè)置,因?yàn)樗鼈兛赡苡糜谶B接的操作(如connect()) |
| s.connect() | 主動(dòng)初始化TCP服務(wù)器連接,。一般address的格式為元組(hostname,port),如果連接出錯(cuò),返回socket.error錯(cuò)誤。 |
二、代碼
1.源代碼
#!/user/bin/
# -*- coding:UTF-8 -*-
# Author:Master_sir
# Version:python2.7
import socket,sys
dk = []
for i in range(0,65536):
dk.append(i)
ports = dk
def IsOpen(ip,port):
try:
s = socket.socket()
s.settimeout(1)
s.connect((ip,port))
return True
except:
return False
pass
def PortScan(ip):
for p in ports:
if IsOpen(ip,p):
sys.stderr.write('%s:%s is open\n' % (ip,p))
PortScan('xxx.xxx.xxx.xxx')
#要掃描的ip
2.執(zhí)行實(shí)例

到此這篇關(guān)于Python利用socket模塊開(kāi)發(fā)簡(jiǎn)單的端口掃描工具的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python socket端口掃描工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python實(shí)現(xiàn)socket端口重定向示例
- Python的Socket編程過(guò)程中實(shí)現(xiàn)UDP端口復(fù)用的實(shí)例分享
- Python的Asyncore異步Socket模塊及實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的例子
- 基于Python socket的端口掃描程序?qū)嵗a
- python基于socket進(jìn)行端口轉(zhuǎn)發(fā)實(shí)現(xiàn)后門(mén)隱藏的示例
- python使用多線程+socket實(shí)現(xiàn)端口掃描
- python基于socket函數(shù)實(shí)現(xiàn)端口掃描
- 利用Python腳本寫(xiě)端口掃描器socket,python-nmap
相關(guān)文章
Pandas創(chuàng)建DataFrame提示:type?object?'object'?has?n
Pandas數(shù)據(jù)幀(DataFrame)是二維數(shù)據(jù)結(jié)構(gòu),它包含一組有序的列,每列可以是不同的數(shù)據(jù)類(lèi)型,這篇文章主要給大家介紹了關(guān)于Pandas創(chuàng)建DataFrame提示:type?object?‘object‘?has?no?attribute?‘dtype‘的解決方案,需要的朋友可以參考下2023-02-02
python實(shí)現(xiàn)兩個(gè)一維列表合并成一個(gè)二維列表
今天小編就為大家分享一篇python實(shí)現(xiàn)兩個(gè)一維列表合并成一個(gè)二維列表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python3 批量獲取對(duì)應(yīng)端口服務(wù)的實(shí)例
今天小編就為大家分享一篇python3 批量獲取對(duì)應(yīng)端口服務(wù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
手把手帶你用Python實(shí)現(xiàn)一個(gè)計(jì)時(shí)器
雖然Python是一種有效的編程語(yǔ)言,但純Python程序比C、Rust和Java等編譯語(yǔ)言中的對(duì)應(yīng)程序運(yùn)行得更慢,為了更好地監(jiān)控和優(yōu)化Python程序,今天將為大家介紹如何使用?Python?計(jì)時(shí)器來(lái)監(jiān)控程序運(yùn)行的速度,以便正對(duì)性改善代碼性能2022-06-06
Python實(shí)現(xiàn)PDF轉(zhuǎn)Word的多種方式總結(jié)
這篇文章主要為大家詳細(xì)介紹了三種Python實(shí)現(xiàn)PDF文件轉(zhuǎn)Word文檔的方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
使用Python Typing模塊提升代碼可讀性和健壯性實(shí)例探索
這篇文章主要為大家介紹了使用Python Typing模塊提升代碼可讀性和健壯性實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
python字符串string的內(nèi)置方法實(shí)例詳解
這篇文章主要介紹了python字符串string的內(nèi)置方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05
python圖形用戶界面tkinter之標(biāo)簽Label的使用說(shuō)明
這篇文章主要介紹了python圖形用戶界面tkinter之標(biāo)簽Label的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Python中不可錯(cuò)過(guò)的五個(gè)超有用函數(shù)
在本文中,我們用代碼詳細(xì)說(shuō)明了Python中超實(shí)用的5個(gè)函數(shù)的重要作用,這些函數(shù)雖然簡(jiǎn)單,但卻是Python中功能最強(qiáng)大的函數(shù),下面一起來(lái)看看文章的詳細(xì)介紹吧,希望對(duì)你的學(xué)習(xí)有所幫助2022-01-01

