Python实现端口扫描
时间: 2023-11-19 11:51:58 浏览: 41
Python可以使用socket模块实现端口扫描。通过建立TCP连接并向端口发送数据,可以判断端口是否开放。以下是一个简单的Python端口扫描器的代码示例:
```
from socket import *
def connScan(tgtHost,tgtPort):
try:
connSkt=socket(AF_INET,SOCK_STREAM) #建立TCP连接
connSkt.connect((tgtHost,tgtPort)) #若无连接,则会出错,进入except
connSkt.send('ViolentPython\r\n'.encode()) #像端口发送数据
results=connSkt.recv(100) #若端口开放,记录返回的消息
print('[+]%d/tcp open' %tgtPort)
print('[+] '+str(results))
connSkt.close()
except:
print('[-]%d/tcp closed' %tgtPort)
def portScan(tgtHost,tgtPorts):
try:
tgtIP=gethostbyname(tgtHost)
except:
print('[-] Cannot resolve %s : Unknown host'%tgtHost)
return
try:
tgtName=gethostbyaddr(tgtIP)
print('\n[+] Scan Results for:'+tgtName[0])
except:
print('\n[+] Scan Results for:' + tgtIP)
setdefaulttimeout(1)
for tgtPort in tgtPorts:
print('Scanning port '+tgtPort)
connScan(tgtHost,int(tgtPort))
if __name__ == '__main__':
tgtHost='192.168.0.13' #目标主机ip
tgtPorts=['20','21','22','80'] #要扫描的端口
portScan(tgtHost,tgtPorts)
```
以上就是使用Python实现的简单端口扫描器的介绍和代码示例。通过这个扫描器,你可以快速检测目标主机上的开放端口,以帮助提高网络安全性。记得在使用端口扫描器时要遵守合法和道德的原则。